android布局最小宽度(sw800dp)和不同密度

android布局最小宽度(sw800dp)和不同密度,android,layout,Android,Layout,如何在具有相同sw800dp最小宽度的IC上为不同的dpi放置不同的资源 详细信息:有两款带有ICS 4.0.4的平板电脑。第一个具有1280x800分辨率和mdpi(160)密度。第二个具有1920x1200分辨率和hdpi(240)密度。因此,就最小宽度而言,它们都具有相同的sw800dp限定符,但mdpi/hdpi密度限定符不同 我需要有这两个分辨率不同的布局和图像 因此,我创建了两个目录: 布局图-sw800dp-mdpi 布局图-sw800dp-hdpi 我认为每个设备都会根据最小的宽

如何在具有相同sw800dp最小宽度的IC上为不同的dpi放置不同的资源

详细信息:有两款带有ICS 4.0.4的平板电脑。第一个具有1280x800分辨率和mdpi(160)密度。第二个具有1920x1200分辨率和hdpi(240)密度。因此,就最小宽度而言,它们都具有相同的sw800dp限定符,但mdpi/hdpi密度限定符不同

我需要有这两个分辨率不同的布局和图像

因此,我创建了两个目录:

布局图-sw800dp-mdpi

布局图-sw800dp-hdpi

我认为每个设备都会根据最小的宽度和密度选择自己的目录。 但它们都从同一个sw800dp hdpi文件夹中获取资源

我非常困惑,不知道如何为这两种不同的解决方案分离资源

非常感谢您的帮助。
提前感谢。

使用此项获得密度:

float density = getBaseContext().getResources().getDisplayMetrics().density;
屏幕高度:

int h = 0;

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

h = (int) display.getHeight();
屏幕宽度:

int w = 0;

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

w = (int) display.getWidth()

之后,只需选择正确的资源。

您应该使用位于/layout/sw800dp中的相同布局,并创建/drawable mdpi和/drawable hdpi来放置自定义的可绘制内容,系统将使用相同的布局对每个设备应用正确的内容。这些设备应该具有相似的大小和外观…

谢谢,我知道如何以编程方式获取显示配置,但如何更改布局加载行为?当我调用setContentView时,Android自己做。我对drawables也有同样的问题。mdpi设备正在从drawable-sw720dp-xhdpiMark Murphy获得资源,他在Google bugtracker上注册了一个关于这个案例的bug,但没有得到goo guys的任何反应。下面是链接:@NorthernCaptaint我也遇到了同样的问题,你有什么解决办法吗?@AbdulSalamAli没有,当时这是一个Android错误。我改变了我的逻辑,改变了程序(在一个布局中设置所有内容,并将可见性设置为我需要的布局)。谷歌的人说它是在4.1+中修复的,但我没有检查。