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

san*_*ter 2 android android-layout

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

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

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

我一直在使用dp/dip尺寸,所以不需要建议=)

oca*_*nal 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
Run Code Online (Sandbox Code Playgroud)

这意味着你应该在res文件夹中创建名为("layout","layout-small","layout-large","layout-xlarge","layout-xlarge-land")的子目录.

而不是为每个具有相同名称的xml创建一个主xml.