Adobe Photoshopを使用してAndroidアプリ用のグラフィックの作成を開始しました。しかし、Photoshopの解像度は1インチあたりのピクセル数で設定されているため、続行できません。Googleの公式ドキュメントにあるように、Androidはdpiで設定された画像を必要とします。私は2つの間の変換についてウェブを検索しましたが、適切な式で終わることはありませんでした。
Androidのドキュメントには、この関係がpx = dp*dpi/160
と記述されていることは知っています。しかし、私の問題は、dpiがわかっている場合、この計算で使用するdpの値をどこで取得できるかということです。または、dpの値について何らかの仮定はありますか?私は混乱しています。
Dpは密度に依存しないピクセルであり、画面のピクセル数を一般化するために使用されます。これらは http://developer.Android.com/guide/practices/screens_support.html から取られた一般化された数値です
画面の一般化されたDpi値:
したがって、リソースの一般化されたサイズ(フルスクリーンであると想定):
Edit-xhdpiの人気が高まっているので追加
これらの値は、Nexus 10を含む、TVやNexus 4などのほとんどのxhdpi画面に適しているはずです(25k x 16kであるため、このための新しいカテゴリを作成しないと仮定します。まだ手にしています)。
/編集
これらのサイズを使用すると、画像はどの画面でも見栄えがよくなります。必ずdpのコードでサイズを定義してください。ただし、Androidは上記の変換を独自に処理します。
Ldpi、mdpi、hdpiおよびxdpiの結果の解像度は、Googleのドキュメントの「Alternative Drawables」で言及されている代替ビットマップの3:4:6:8スケーリング比を満たさないため、Michael Allenの回答に同意しません。
http://developer.Android.com/guide/practices/screens_support.html#testing
したがって、最小サイズのベースラインの例を取ることをお勧めします
同じドキュメントの式を使用して470 x 320 dpで、ベースライン画面サイズの全画面解像度を計算します
px = dp *(dpi/160);ベースラインpx = dp *(160/160)= dp * 1の場合、px = dpです。これは、ベースライン構成の全画面サイズを意味しています。ピクセルで
470 X 320ピクセル(mdpi)
ここで、ldpi、hdpi、xhdpiの代替ドローアブルサイズの3:4:6:8スケーリング比率に従うために、mdpiからユニット値を取得する必要があります。つまり.
470/4 = 117.5
320/4 = 80
mdpiのスケーリング比が4であるため、4で除算します。ldpi、hdpi、xhdpiのスケーリング比は、それぞれ3、6、8です。単位の結果117.5と80にこれらの倍率を掛けるだけです。
ldpi
117.5 * 3 = 352.5
80 * 3 = 240
mdpi
117.5 * 4 = 470
80 * 4 = 320
hdpi
117.5 * 6 = 705
80 * 6 = 480
xhdpi
117.5 * 8 = 940
80 * 8 = 640
これらのサイズは、完全な3:4:6:8スケーリング比率になりました。
はい、Dp(密度独立ピクセル)がすべてPhotoshopで処理されます。ピクセルの密度を考慮する必要はありません。非常に高いピクセル数の画像は、気になるすべてのもののために、超小型の高解像度UIボタンに配置できます。または、テトリスのレトロなスタイルのA0ポスターのピクセル数が少ない場合があります。これは、スケーリングできるためです。画面上の大きな領域ではほとんどのピクセルが拡大されず、小さな領域では多くのピクセルが縮小されます。
だからあなたの目標を選びなさい サイズへのリンク スクリーンサイズそしてそれをphotoshopで使ってください。 (また、誰が何を使用しているかを確認してください... 使用サイズの円グラフ )
直感的に、このサイトは私を助けました ブログページへのリンク :
実行時に、プラットフォームは使用中の画面の実際の密度に基づいて、必要なdp単位のスケーリングを透過的に処理します。
(プラットフォームはスケーリングを行います-密度比の処理はAndroidではなくユーザーによって行われます)、これはUIに非常に関連しています。
異なる画面でのUIの適切な表示を保証する方法として、dpユニットを使用してアプリケーションのUIを定義することを強くお勧めします。
UI要素をすべてのデバイスで同じように表示したいので、その数式で計算するピクセル数に基づいてスケーリングを行います。また、dpがスケーリングされて、スペアまたは密度が高くなりすぎると、見栄えがよくありません。
Photoshopの解像度は1インチあたりのピクセル数で設定されるため、Googleの公式ドキュメントにAndroidと記載されているように、dpiで設定された画像が必要になります。
すべてのデバイスで同じなので、その数式で計算するピクセル数に基づいてスケーリングを行います。