Android不尊重ldpi限定符

时间:2012-12-29 15:00:05

标签: android android-layout dpi android-drawable

我想区分以下两个设备的布局/绘图:

1) 7" hdpi
2) 7" ldpi

所以我使用以下限定目录:

1) layout-sw600dp-hdpi / drawable-sw600dp-hdpi
2) layout-sw600dp-ldpi / drawable-sw600dp-ldpi

但是当我在屏幕尺寸为480x764的7英寸ldpi设备上运行时,Android(V4.0.3)会选择hdpi版本。为什么会这样?当我阅读文档时,ldpi应该更适合。< / p>

当我完全删除layout-sw600dp-hdpi / drawable-sw600dp-hdpi时,它会选择2)并且一切都很好。但我也需要hdpi版本。

那么如何区分7“设备的ld​​pi / hpdi版本?

谢谢!

的Andrej

2 个答案:

答案 0 :(得分:0)

如果支持多个屏幕不起作用,那么您可以手动完成:

使用flags创建bools-ldpi,bools-hdpi:

bools-ldpi包含名称为“lowDp”= true的字段 bools-hdpi包含名称为“highDp”= true等的字段。

在代码中你制作if-else if-else:

if ( getresource "lowDp" ) 
    ...
else if ( getresource "highDp" ) 
    ...
...

答案 1 :(得分:0)

我找不到参考了,但我认为我已经读过某个地方你不应该同时使用tinyWidth(swdp)或Avilable width(wdp)而不是屏幕像素密度(ldpi,hdpi等) 。)并且这种组合的结果是无限期的。

如果您为不同的屏幕像素密度显示不同的drawable,您应该将它们放在他们自己的可绘制的库中,如drawable-ldpi / icon.png或drawable-hdpi / icon.png,与布局库存分开并保持只有这些布局库的swdp术语。