画像やその他のビジュアル ファイルは、1 つ以上の描画可能なディレクトリに保存されます。ディレクトリが 1 つだけの場合、Android は必要に応じてイメージをスケーリングします。複数のディレクトリが使用されている場合、Android は適切なサイズの画像を選択します。
- drawable-ldpi - 低密度画像
- drawable-mdpi - 中密度画像
- drawable-hdpi - 高密度画像
- drawable-xhdpi - 超高密度画像 (つまり、網膜のようなディスプレイ)
- drawable-xxhdpi - 超高密度画像 (Nexus 10、Samsung Galaxy S4、HTC One、Sony Xperia Z などのデバイス)
- drawable-xxxhdpi - トリプル超高密度イメージ ( Nexus 6 および 9 )
(補足: XML ファイルは、ドローアブルとして記述および保存することもできます。これらの種類のファイルは、ビューの状態、またはグラデーション、境界線などの他の視覚設定に基づいて、複数の画像をいつ使用するかを制御できます。)
それで、あなたは何をすべきですか?
最良の結果を得るには ( Android 開発者ドキュメントから):
これらの画像を生成するには、ベクター形式の生のリソースから始めて、次のサイズ スケールを使用して密度ごとに画像を生成する必要があります。
- xxxhdpi: 4.0
- xxhdpi: 3.0
- xhdpi: 2.0
- hdpi: 1.5
- tvdpi: 1.33 (テレビのみ)
- mdpi: 1.0 (ベースライン)
- ldpi: 0.75
つまり、xhdpi デバイス用に 200x200 のイメージを生成する場合、同じリソースを hdpi 用に 150x150、tvdpi 用に 133x133、mdpi 用に 100x100、最後に ldpi デバイス用に 75x75 のイメージで生成する必要があります。
画像を 1 つだけ使用し、Android でスケーリングできるようにする場合は、次のようにします。
Android デベロッパー サイトのダッシュボードによると、現在 Android デバイスの 75% 以上が hdpi 以上の解像度を備えています。たとえば、hdpi で 1 つのイメージを作成すると、約 3 分の 1 のデバイスで完璧に表示され、一部のデバイスでは拡大、約 25% のデバイスで縮小されます。一般的には、スケールアップするよりもスケールダウンしたほうがよいと思います。