87

アプリの画像アセットに関する疑問を解消する必要があります。

何かの高さ[画像ビュー]が50ディップの高さであることをxmlファイルで指定した場合

リソース フォルダからどの種類の画面を選択すればよいですか?

drawable, hdpi, ldpi, mdpi, xhdpi,

高さ50ピクセルの画像を作成するには、

ベース画像と比較して、サイズの大きい画像と小さい画像の割合は何パーセントですか。

iOS のように、@2x は文字どおり画像の 2 倍のサイズであり、プログラム的には通常のサイズと言います。

ありがとう!

4

4 に答える 4

375

mdpiは基準密度です。つまり、mdpiディスプレイ上の 1 ピクセルは 1 ディップに相当します。アセットのスケーリングの比率は次のとおりです。

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1    | 1.33  | 1.5  | 2     | 3      | 4

tvdpiGoogle TV やオリジナルの Nexus 7 向けに特別に開発している場合を除き、実際に心配する必要はありませんが、Google でさえhdpiアセットを使用することを推奨しています。

これが意味することは、48dip イメージを実行していて、最大 をサポートする予定がxxhdpi resolutionある場合、144 ピクセルのイメージ (xxxhdpi のネイティブ アセットが必要な場合は 192 ピクセル) から始めて、次の密度のイメージを作成する必要があるということです。

ldpi    | mdpi    | tvdpi    | hdpi    | xhdpi     | xxhdpi    | xxxhdpi
36 x 36 | 48 x 48 | 64 x 64  | 72 x 72 | 96 x 96   | 144 x 144 | 192 x 192

これらは、密度固有のフォルダー (例: 、 など) に配置されていれば、どのデバイスでもほぼ同じサイズで表示されるはずdrawable-xhdpiですdrawable-hdpi

参考までに、これらのピクセル密度は次のとおりです。

ldpi  | mdpi  | tvdpi  | hdpi  | xhdpi  | xxhdpi  | xxxhdpi
120   | 160   | 213    | 240   | 320    | 480     | 640
于 2012-07-20T14:54:48.803 に答える
22

kcoppockの回答に基づいて、すべての画像のサイズを自動的に正しいサイズに変更し、それぞれの Android drawable-* - フォルダーにコピーする次のシェル スクリプトを作成しました。

シェル スクリプトを作成し、次のコードを貼り付けます。

createAndroidImages.sh

#!/bin/bash

read -p "Please enter the subfolder of the original images? " folder
read -p "How many DP (width) should the image have? " dp

for i in $(find $folder/. -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done

mkdir drawable-ldpi
mkdir drawable-mdpi
mkdir drawable-tvdpi
mkdir drawable-hdpi
mkdir drawable-xhdpi
mkdir drawable-xxhdpi
mkdir drawable-xxxhdpi

cp $folder/* drawable-ldpi/
cp $folder/* drawable-mdpi/
cp $folder/* drawable-tvdpi/
cp $folder/* drawable-hdpi/
cp $folder/* drawable-xhdpi/
cp $folder/* drawable-xxhdpi/
cp $folder/* drawable-xxxhdpi/

sips -Z $(echo $dp*3/4 | bc) drawable-ldpi/*
sips -Z $(echo $dp | bc) drawable-mdpi/*
sips -Z $(echo $dp*4/3 | bc) drawable-tvdpi/*
sips -Z $(echo $dp*3/2 | bc) drawable-hdpi/*
sips -Z $(echo $dp*2 | bc) drawable-xhdpi/*
sips -Z $(echo $dp*3 | bc) drawable-xxhdpi/*
sips -Z $(echo $dp*4 | bc) drawable-xxxhdpi/*

スクリプトをフォルダーに入れ、元の画像をサブフォルダーに入れます。

/
.. createAndroidImages.sh
.. originalImages/
....a123.png
....b456.png

ターミナルでシェル スクリプトを実行します。sh createAndroidImages.sh

作成したイメージを Android Studio プロジェクトに直接コピーするには:

cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/

あなたは終わった!これが誰かを助けることを願っています!

PS 最適な結果を得るには、元の画像のピクセル単位の幅が、目的の dpi 単位の幅 (例: 4 (factor xxxhdpi) * 30dpi => 120px) の少なくとも 4 倍である必要があることに注意してください。

于 2014-04-05T13:01:42.590 に答える
4

kcoppock は、Andorid の画面密度について素晴らしい説明をしてくれました。元の質問に関してもう1点追加したいと思います。

Android タブレット ランチャー アイコンは、1 つ上の密度バケットを使用します。

Google の開発者 Nick Butcher の Google+ 投稿によると、

Nexus 10 の美しい画面は、XHDPI 密度バケットに分類されます。タブレットでは、Launcher は 1 つ上の密度バケットのアイコン [0] を使用してアイコンを少し大きく表示します。ランチャー アイコン (おそらくアプリの最も重要なアセット) を鮮明にするには、drawable-xxhdpi または drawable-480dpi フォルダーに 144*144px のアイコンを追加する必要があります。

ここでソースを見つける

于 2013-10-08T20:37:34.817 に答える