2

長くてまだはっきりしていないドキュメントを読んだことがあります。

サイズ=120px* 80pxの画像があると仮定すると、デフォルトのmdpi / 160密度で、準備する必要があります

ldpi = 90 * 60
hdpi = 180 * 120
xhdpi = 240 * 160

上記の計算は正しいですか?レイアウトが1つしかない場合、必要なのは画像を準備して、対応する描画可能なフォルダーの下に配置することです。

ありがとう

4

7 に答える 7

2

はい、それらは正しいサイズです。

はい、さまざまなバージョンを res/drawable-ldpi、-mdpi、-hdpi、および -xhdpi フォルダーに入れるだけで完了です。

画像に応じて、特に自動的に縮小しても見栄えが良いかどうかに応じて、hdpi と xhdpi のバージョンを提供するだけで、Android は実行時に ldpi と mdpi のそれぞれを自動的にスケーリングします。

于 2012-08-19T17:40:19.853 に答える
1

編集:わかりました、計算は正しいです。http://developer.android.com/guide/practices/screens_support.htmlpx = dp * (dpi / 160)の式によると、mdpi のピクセル = dp です。

そして、ここにいくつかの追加情報があります:

Dpi は、1 インチにどれくらいのドット (ピクセル) があるかを示します。ただし、画面の合計ピクセル数はわかりません。したがって、たとえば、幅と高さが 400 ピクセルで、画面の対角線が 5 インチのデバイスを使用できます。これでdpi値が得られます。(たとえば、 http://members.ping.de/~sven/dpi.htmlを使用)。

これで、同じ dpi 値を持つ別のデバイスができましたが、解像度が高く、たとえば 1000 x 1000 ピクセルで対角線が大きくなっています。

前者の場合、たとえば 200 x 200 ピクセルの画像を作成した場合、画面の半分を占めますが、後者の場合、両方のデバイスが同じ dpi を持っていても、画面の 1/5 にすぎません。それはおそらくあなたがやりたいことではありません。

私が通常行うことは、通常この dpi を持つデバイスの解像度 (hdpi -> 480x800、xhdpi -> 720x1280 など) に合わせることです。レイアウトでは、scaleType "fitStart"、"center" と組み合わせて dip を使用します。など、画像の比率を維持します。そのため、解像度の異なる画像を ldpi、hdpi、xhdpi フォルダーに配置しましたが、式は使用しません。

必要に応じて、dpi と組み合わせて/代わりに画面サイズを使用することもできます。

特大画面は 960 dp x 720 dp 以上

大画面は 640 dp x 480 dp 以上

通常の画面は 470dp x 320dp 以上

小さな画面は少なくとも 426 dp x 320 dp

これは、dpi などの追加のフォルダーで機能します。

ところで。現在、さまざまな解像度/画面用にさまざまなバージョンのアプリを Google Play に配置できるため、ユーザーはすべてのファイル (巨大なアプリ サイズ、長時間のダウンロードなど) をダウンロードする必要はなく、必要なものだけをダウンロードする必要があります。デバイス。

于 2012-08-19T17:47:49.327 に答える
0

異なるピクセル密度のデバイス上でイメージが (ほぼ) 同じ物理サイズを持つことが目標である場合、計算は正しいです。画像はディレクトリに移動します

res/drawable-ldpi
res/drawable-mdpi
res/drawable-hdpi
res/drawable-xhdpi

Android は、デバイスをこれらの一般的な密度クラス (120dpi、160dpi、240dpi、および 320dpi) のいずれかに分類し、それらの比率に従って画像をスケーリングします。物理デバイスは必ずしもこれらの密度のいずれかであるとは限らないため、イメージの物理サイズはデバイスによって若干異なる場合があります。特定の密度の画像を指定しない場合、Android はデフォルト/mdpi 画像をスケーリングして生成することに注意してください。一般に、結果は、独自のイメージを提供することによって得られる品質とはまったく異なります。

Android Lint を実行すると、不足しているリソース (xhdpi イメージを含めるのを忘れているなど) が通知され、スケーリングの計算が大幅にずれているかどうかも通知されます。知っておくと便利な機能です。

この画像全体のスケーリング アプローチは、画面サイズとは関係なく、ピクセル密度のみであることに注意してください。また、さまざまな画面サイズ、またはさまざまな画面サイズ/密度の組み合わせ用のリソース フォルダーを作成することもできます。

ただし、画面密度に関係なく 120 x 80 ピクセルで表示される画像が必要な場合、上記のスキームは機能しません。代わりに、画像をフォルダーに入れる必要があります

res/drawable-nodpi

Android は、そこから取得した画像をスケーリングしません。その結果、画像は mdpi デバイスでは約 3/4" x 1/2"、ldpi デバイスでは 1" x 3/4"、xhdpi デバイスでは 3/8" x 1/4" などになります。 .

于 2012-08-19T17:58:22.370 に答える
0

デバイスの画面密度 (dpi) がわかっている場合は、これを使用して同等のサイズをピクセル単位で計算できます。

equalPixels = sizeInDP*(screenDensity/160)

sizeinDP は、画像を表示するウィジェットのサイズです。さまざまな画面密度のサイズをピクセル単位で計算し、それぞれのフォルダーに配置します。

したがって、ImageViewサイズが 300dp X 200dp (幅 X 高さ) で、画面密度が 320dpi の場合、ピクセル単位の画像サイズは次のようになります。

幅 = 300*(320/160) = 600px
高さ = 200*(320/160) = 400px

お役に立てれば!

于 2012-08-19T18:03:54.067 に答える
0

ldpi、mdpi、hdpi、xhdpi の画像のスケーリング比は 3:4:6:8 ですが、一度考えてみてください。2) ldpi 中画面のモバイルがある場合、画像は少し小さく表示されます 3) 2) ldpi 大画面のモバイルがある場合、画像は小さく表示されます。

すべての mdpi、hdpi、および xhdpi 画面でこのようにします。

アプリで 9 つのパッチ イメージを使用する可能性がある場合は、それらのイメージを試してください。

于 2012-08-17T11:02:27.663 に答える
0

はい、あなたが行ったサイズの計算は正しいです。

次に、プロジェクトのres/ drawableにあるldpimdpihdpi、およびxhdpiのそれぞれのフォルダーにそれらを配置する必要があります。

于 2012-08-19T17:46:07.060 に答える