Android-提供替代资源不起作用?

时间:2010-09-14 21:12:45

标签: android layout

我觉得我好像缺少了什么。

在我的应用程序中,我决定提供替代的可绘制资源和替代布局文件。我的结构如下:

RES /抽拉-HDPI / filename.png
RES /抽拉-MDPI / filename.png
res / drawable-ldpi / filename.png

RES /布局小/ layout.xml
RES /布局大/ layout.xml
res / layout / layout.xml

我创建了三个不同的模拟器:一个使用默认的HVGA,一个使用QVGA,另一个使用WVGA800

它似乎没有根据屏幕尺寸/密度获取那些替代资源/布局,或者我可能无法分辨?

除了使用每种特定尺寸的设备之外,还有其他方法可以测试吗?或者我只是遗漏了一些重要的东西?

另一个问题是,如果没有替代资源,Android会如何缩放drawables?

2 个答案:

答案 0 :(得分:1)

有几点,没有特别的顺序:

  • 布局与屏幕尺寸有关,因此大,中,小和可绘制与密度有关,因此与hdpi,mdpi,ldpi有关。这对某些人来说是显而易见的,对其他人来说并不那么容易理解。
  • 仔细阅读this并按照此页面中的说明创建您的模拟器设备,仔细检查以确保您正确使用它们。
  • 现在从一个简单的布局开始,并在默认设备外观上测试它,然后添加layout-320x480,test,repeat for other sizes。如果您使用layout-large / small等,请记住将正确的行添加到AndroidManifest.xml <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizable="true" android:anyDensity="true" />
  • 这样做的一个简单方法是拥有一个默认的layout.xml和drawables文件夹,对于不同大小的layout-320x480.xml等文件夹和不同的密度,我们有drawables-hdpi等文件夹。如果您确保在清单文件中设置android:anyDensity="false" />,那么手机将根据其属性获得正确的布局和资产。

如果您在清单文件中设置android:anyDensity="false" />,则手机会处理drawable的大小,通常从drawables文件夹中获取资源并调整其大小。

答案 1 :(得分:1)

在3.2以上版本中,Android开发者已经发布了两款适用于平板电脑的新产品

layout-sw600dp-land
layout-sw720-land