10

かなり長い間、私は4つの異なる密度のリソースフォルダーを宣言してきました。

  • drawable-ldpi
  • drawable-mdpi
  • ドローアブル-hdpi
  • ドローアブル-xhdpi

128dpレイアウトのXMLでは、これらのグラフィックスなどに固定幅を使用しています(密度に依存しません) 。

しかし、ますます多くの大画面電話、特にタブレットが導入されたとき、そのアプローチはもはや機能しませんでした。この方法で密度に依存しないリソースを提供しますが、レイアウトは大画面では見栄えがよくありません。

Dimensionこれが、XMLレイアウトで使用するために、画面サイズに依存するリソースを追加する必要があると思う理由です。例:

  • 値-w600dp
  • 値-w720dp
  • 値-w1024dp

しかし、それは私がそれらの4つの密度のコンテナーをサポートすることをやめるべきであることを意味しますか?または、16個のリソースフォルダーを提供する必要がありますか?つまり、密度とサイズの組み合わせごとに1つ提供する必要がありますか?

このトピックに関して、 Androidのドキュメントに適切なヘルプが見つかりません。

4

2 に答える 2

4

ドローアブルとレイアウトは異なります。あなたの質問に答えるために、あなたはそれらの密度のサポートをやめるべきですか?はい。ただし、xdpiとhdpiは引き続きサポートする必要があります。Romain Guyは最近、Nexus 7(tvpi)のような最新のデバイスは、mdpiが実際には必要ないほど、アセットを適切にスケーリングできると述べました。そして、誰もldpiをもう使用しません。私が最後に見たのは市場の2%未満でした。

レイアウトについて。Nexus 7(1280x800 tvdpi)は、値-w1024dpから何かを使用しますが、それでもdrawable-hdpiフォルダーからアセットを取得します。これら2つは相互に排他的ではありません。S3のようなものも値-w1024dpからプルしますが、drawable-xdpiを使用します。ユースケースで必要な場合にのみ、代替レイアウトを提供する必要があります。

では、16の異なるものが必要ですか?いいえ。xdpiとhdpiが必要です(mdpiでない場合)。さまざまなサイズの代替レイアウトを含めることをお勧めします必要に応じて具体的にすることも、一般的にすることもできます。携帯電話とタブレット(7インチと10インチ)の両方でハイブリッドアプリを使用している場合を除いて、おそらく多くのxxxx-sizexxxフォルダーは必要ありません。

レイアウトのXMLでは、これらのグラフィックに128dpなどの固定幅(密度に依存しない)を使用しています。

これはおそらくあなたの問題の原因です。レイアウトは、wrap_contentとmatch_parentを使用してできるだけ流動的にする必要があります。固定サイズは、事前にサイズがわかっている側面と画像の周りのパディング用に予約する必要があります。これを行う場合、レイアウトは小さな320x200からGTVサイズまでの任意のサイズで適切に見えるはずです。

于 2013-01-24T03:16:53.573 に答える
0

1)レイアウト(values / dimens.xml)の寸法について:

値値-w600dp値-w720dp値-w1024dp

しかし、それは私がそれらの4つの密度のコンテナーをサポートすることをやめるべきであることを意味しますか?または、16個のリソースフォルダーを提供する必要がありますか?つまり、密度とサイズの組み合わせごとに1つ提供する必要がありますか?

いいえ、dpiバケットごとに異なるサイズ(hdpi / xhdpi)を指定する必要はありません。これは、サイズがデバイスに基づいてすでにスケールアップまたはスケールダウンされているためです(pxの代わりにdpを使用している場合)。したがって、寸法については、さまざまなサイズのデバイスの値を指定するだけで済みます(したがって、名前、値-可能な最小幅-600-dp)。携帯電話に16dpのパディングが必要でなく、10インチのタブレットにも16dpが必要なため、代わりに64dpが必要です。いいえ、デバイスの密度は関係ありません。同じパディングが必要です。それぞれのデバイスの幅についてです。したがって、寸法については、デバイスの実際の物理的寸法についてのみ考える必要があります。

2)さまざまな解像度(drawables / xdpi)のドローアブルスケーリングについて:システムは、デバイスに合わせてドローアブルを適切にスケーリングします。これについて心配する必要はありません。また、ここに他のバケットを追加する必要はありません。将来的には多くの新しいデバイスが新しい密度を使用するため、mdpi / hdpi/xhdpiとおそらくxxhdpiを使用してください。

結論:2つの異なるルールに従って異なる2つの異なるUI構築コンポーネントがあります。画面密度に基づくドローアブルと画面サイズに基づく寸法です。一方を他方と間違えないでください。valuesフォルダーに数十個のバケットが必要だと考えてください。それは間違っているだけでなく、気が遠くなるだけです。

于 2013-01-25T15:42:52.953 に答える