1. ホーム
  2. android

[解決済み] anydpiと-nodpiの違いは何ですか?

2022-08-28 10:03:03

質問

Android Studio 1.5.0のベクターアセットウィザードを使用した場合、そのウィザードでインポートしたベクター描画可能なXMLはすべて res/drawable/ .

しかし build/ ディレクトリに移動し、生成された APK を見ると、これらの XML ファイルは res/drawable-anydpi-v21/ リソースディレクトリに移動されます。そのため -v21 の部分は意味があります。 VectorDrawable は API Level 21+ でのみサポートされているからです。しかし -anydpi は文書化されていないようです。私が期待するのは -nodpi を期待したのですが、元のインポート先とビルドシステムがそれを移動することを選択した場所の両方に対してです。

誰か -anydpi が何を意味するのか、また -nodpi ? 私は、単にコードのコメントが示唆するものだけでなく、実際の効果を探しています。

どのように解決するのですか?

ノードピ

<ブロッククオート

これらは密度に依存しないリソースです。現在のスクリーンの密度に関係なく、システムはこの修飾子でタグ付けされたリソースをスケールしません。

例えば

  • drawable- ノードピ /dot.png

ドットは xxhdpi では小さく、ldpi では大きく表示されます。

しかし、リソースリゾルバは特定の修飾子が存在すれば、それにマッチします。

例えば

  • drawable- hdpi /eg.png
  • 描画可能 nodpi -v21/eg.xml

Lollipop(API 21)のhdpi端末では ビットマップ が使用されます。

Lollipop(API 21)のxhdpi端末では、vectorが使用されます。

anydpi

これらのリソースは、任意のdpiで優先されます。

例えば

  • drawable- hdpi /eg.png
  • 描画可能 任意dpi -v21/eg.xml

Lollipop(API 21)のhdpi端末では ベクトル が使用されます。

Lollipop (API 21) xhdpiの端末では、vectorが使用されます。

参考

備考 : anydpi が追加されました。 change Ic3288d0236fe0bff20bb1599aba2582c25b0db32 .