2012-04-08 59 views
1

我想知道如何根据屏幕密度来读取不同的XML布局文件。Android:如何访问不同的布局取决于XML中的屏幕密度

现在,当我输入布局文件并设置为使其具有几个按钮并将它们设置为特定位置时,当我在模拟器中更改为其他屏幕密度时,位置会发生变化。这是我应该发生的事情,但我怎么让程序根据密度使用不同的布局?

我一直在阅读Android开发。关于如何开发不同屏幕的页面,但我没有得到那里的例子。

我一直在使用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 

这意味着你应该创建命名为(“布局”,“布局小”,“布局大”,“布局XLARGE”,“布局XLARGE土地”)在res子目录夹。

比为同名的每个人创建一个主要的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

不错的提示!谢谢 – 2013-12-18 16:41:56