5

少し初歩的な質問ですが、電話がどの密度バケットに収まるかを計算することになると混乱します.Galaxy S3を例に挙げます.

1280 x 720それはそれが持っていることを意味する解像度を持ってい306 dpiます。さて、下のチャートを参照すると、私の携帯電話は画面に必要なものよりも多いが少ないhdpiため、このカテゴリに分類されます. したがって、電話は(1.5 で割る)240 dpi320 dpixhdpi853 x 480 DP

しかし、私の電話の画面情報アプリは、それがxhdpi画面であると教えてくれます。したがって、電話は640 x 360 DP(2 で割る) です。

自分の電話がどの密度バケットに該当するかを知るにはどうすればよいですか?

ここに画像の説明を入力

更新:
私は自分の国でトップ 10 の Android スマートフォン向けにアプリを設計しようとしています。そのため、「最小幅の DP」に基づいて UI を設計するために、DP でサイズを計算しています。これは 1 回限りのサイズ計算ではありません。

4

3 に答える 3

12

一度知りたい方は、 ScreenInfoなどのアプリを入手して実行してみてください。プログラムで知りたい場合は、 や などの密度フォルダーを追加values-mdpiし、その中に次の内容values-xhdpiの xml ファイルを配置します。whoami.xml

<resources>
    <string name="density_bucket">mdpi</string>
</resources>

そして、それぞれ:

<resources>
    <string name="density_bucket">xhdpi</string>
</resources>

そして、アプリから問い合わせます:

String densityBucket = getResources().getString( R.string.density_bucket );
于 2015-01-30T16:12:25.323 に答える
11

ねえ、私はそのチャートを認識しています! ほとんどの場合、私が作成したためです:D. 明確にするために、グラフは各密度バケットのベースラインとなる dpi を示していますが、デバイスをどの密度バケットに分類するかを決定するために使用することはできません。とはいえ、下の図は、デバイスがどのように密度バケットに一般化されているかを示しており、デバイスが分類されるバケットよりも高いまたは低い dpi を持っている可能性があることがわかります。

密度バケットの一般化

残念ながら、あなたの質問に答えるために、デバイスがその仕様に基づいて純粋にどの密度バケットに分類されるかを知る保証された方法はありません. これは、デバイス メーカーが密度バケットを選択できるためです。ほとんどの場合、デバイスの実際の dpi に最も近いバケットを選択します**。幸いなことに、Google は、一般的なデバイスのリストと、その画面サイズdp、および密度バケットのリストを収集しました。これにより、一般に普及している最も一般的な画面サイズを適切にサポートする方法がわかります。

**注: 一部のデバイスには、独自の特別な密度バケットがあります。最も顕著なのは、Nexus 7 (2012) が 213dpi (tvdpi)、Nexus 5X が 420dpi、Nexus 6 と 6P が 560dpi です。これらのデバイスは、他の密度バージョンからアセットを取得してスケーリングします。

于 2016-02-05T20:25:43.160 に答える
-1

Androidは「ベストマッチ」を見つけようとしていると思います。したがって、306 が 240 と 320 の間にある場合、320 にはるかに近くなります。したがって、xhdpi が使用されます。詳しくはこちらをご覧ください。ドキュメントへの公式リンクから引用:

現在の画面のサイズと密度に基づいて、システムはアプリケーションで提供されるサイズと密度に固有のリソースを使用します。たとえば、デバイスの画面が高密度で、アプリケーションがドローアブル リソースを要求する場合、システムはデバイス構成に最適なドローアブル リソース ディレクトリを探します。利用可能な他の代替リソースによっては、hdpi 修飾子を持つリソース ディレクトリ (drawable-hdpi/ など) が最適な場合があるため、システムはこのディレクトリの描画可能なリソースを使用します。

于 2015-01-30T16:16:10.673 に答える