Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何根据XML中的屏幕密度访问不同的布局_Android_Android Layout - Fatal编程技术网

Android:如何根据XML中的屏幕密度访问不同的布局

Android:如何根据XML中的屏幕密度访问不同的布局,android,android-layout,Android,Android Layout,我想知道如何根据屏幕的密度读取不同的XML布局文件 现在,当我输入一个布局文件并设置为时,它有两个按钮,并将它们设置为一个特定的位置,当我在模拟器中更改为另一个屏幕密度时,位置会发生变化。这是我所理解的应该发生的事情,但是我如何让程序根据密度使用不同的布局呢 我一直在读android开发页面上关于如何为不同的屏幕开发的文章,但我没有得到其中的示例 我一直在使用dp/dip的大小,所以没有必要建议=)您可以通过为每个标准屏幕大小创建布局来实现 你可以找到怎么做 res/layout/my_layo

我想知道如何根据屏幕的密度读取不同的XML布局文件

现在,当我输入一个布局文件并设置为时,它有两个按钮,并将它们设置为一个特定的位置,当我在模拟器中更改为另一个屏幕密度时,位置会发生变化。这是我所理解的应该发生的事情,但是我如何让程序根据密度使用不同的布局呢

我一直在读android开发页面上关于如何为不同的屏幕开发的文章,但我没有得到其中的示例


我一直在使用dp/dip的大小,所以没有必要建议=)

您可以通过为每个标准屏幕大小创建布局来实现

你可以找到怎么做

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 land”)的子目录


然后为每个具有相同名称的xml创建一个主xml

通过将布局XML文件放在不同的文件夹中,您可以让Android根据屏幕密度加载正确的文件夹。例如,如果布局名为“main.xml”:

  • 将文件放在/res/layout ldpi/main.xml中意味着它仅用于低密度(或更高密度)的环境中
  • 将文件放在/res/layout mdpi/main.xml中意味着它仅用于中等密度(或更高密度)的环境中
  • 将文件放在/res/layout hdpi/main.xml中意味着它仅用于高密度(或更高密度)中
  • 将文件放在/res/layout xhdpi/main.xml中意味着它仅用于超高密度
您可以对所有资源执行相同的操作-可绘制、字符串、维度等(例如,可绘制mdpi或值en[值仅在英语区域设置中使用])。您可以在(表2:配置限定符名称)中找到此系统支持的不同设备设置的完整列表