2012-04-08 8 views
1

画面の密度に応じて異なるXMLレイアウトファイルを読み込む方法を知りたいと思います。Android:XMLの画面密度に応じて異なるレイアウトにアクセスする方法

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

私はandroid devで読んでいます。さまざまな画面を開発する方法についてのページがありましたが、そこにあった例は得られませんでした。

I)=そうなサイズであることを示唆する必要がDP /ディップを使用されていない

答えて

5

あなたは、各スタンダール画面サイズのレイアウトを作成することにより、それを行うことができ、

あなたが行う方法hereを見つけることができますそれ。

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に( "レイアウト"、 "レイアウト・小型"、 "レイアウト・大"、 "レイアウト・XLARGE"、 "レイアウト・XLARGE-土地")という名前のサブディレクトリを作成する必要があります意味フォルダ。

同じ名前を持つそれぞれのメインXMLを作成するよりも、

2

レイアウト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:構成修飾子の名前)にあります。

+0

nice tip!ありがとう –

関連する問題