2

画面の密度に応じて異なる XML レイアウト ファイルを読み取る方法を知りたいです。

レイアウト ファイルを入力して、いくつかのボタンがあり、特定の位置に設定されるように設定すると、エミュレータで別の画面密度に変更すると位置が変わります。これは私が理解していることですが、密度に応じてプログラムに異なるレイアウトを使用させるにはどうすればよいですか?

私はAndroid devで読んでいます。さまざまな画面用に開発する方法に関するページを参照しましたが、そこにある例は入手できませんでした。

私はサイズに dp/dip を使用しているので、それを提案する必要はありません =)

4

2 に答える 2

5

各標準画面サイズのレイアウトを作成することでそれを行うことができます。

ここでその方法を見つけることができます。

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

res フォルダに ("layout", "layout-small","layout-large","layout-xlarge","layout-xlarge-land") という名前のサブディレクトリを作成する必要があることを意味します。

同じ名前でそれぞれのメイン xml を作成するよりも。

于 2012-04-08T10:33:08.230 に答える
3

レイアウト XML ファイルを別のフォルダーに配置することで、画面密度に応じて Android に正しいファイルをロードさせることができます。たとえば、レイアウトの名前が「main.xml」の場合:

  • ファイルを /res/layout-ldpi/main.xml に配置すると、低密度 (またはそれ以上) でのみ使用されます。
  • ファイルを /res/layout-mdpi/main.xml に配置すると、中密度 (またはそれ以上) でのみ使用されます。
  • ファイルを /res/layout-hdpi/main.xml に配置すると、高密度 (またはそれ以上) でのみ使用されます。
  • ファイルを /res/layout-xhdpi/main.xml に配置すると、超高密度でのみ使用されることを意味します

すべてのリソース (ドローアブル、文字列、寸法など) で同じようなことを行うことができます (例: drawable-mdpi または values-en [英語ロケールでのみ使用される値])。このシステムでサポートされているさまざまなデバイス セットアップの全リストは、http://developer.android.com/guide/topics/resources/providing-resources.html (表 2: 構成修飾子の名前)にあります。

于 2012-04-08T10:35:18.043 に答える