如何支持所有屏幕?

时间:2012-09-05 14:34:03

标签: android layout screens

我为Android制作了一个应用程序,并且我试图让它在每个可能的设备上运行。

为此,我创建了不同密度(ldpi,mdpi,hdpi,xhdpi)的不同布局(小,普通,大,xlarge),但是当我加载范围为layout-normal-xhdpi的仿真器时,应用程序不启动并退出异常(强制关闭)。对于所有其他布局,它可以很好地工作。

它应该是什么?

我正在使用minSDK = "8",但我也尝试使用更高版本的API,但仍无法使用。我还测试了4级以下的APIS,它运行良好(这些API的问题不支持所有分辨率)。

3 个答案:

答案 0 :(得分:1)

您可以提供替代资源(drawables)和布局(以及区域支持的语言)。请参阅android开发者指南,了解支持多个屏幕,尤其是关于android如何选择所提供资源的部分here

此外,还提供了here的解释,只需在页面中滚动即可获得有关该主题的清晰视图。

答案 1 :(得分:0)

将这些代码放在您的清单文件中:

<supports-screens android:largeScreens="true"
android:normalScreens="true" android:smallScreens="true"
android:anyDensity="true" />

答案 2 :(得分:0)

以下是日志中的一些选择行,告诉您发生了什么:

  

09-05 15:10:3​​4.941:E / dalvikvm-heap(453):9523200字节的外部分配对于此过程来说太大了。

  

09-05 15:10:3​​5.112:E / AndroidRuntime(453):引起:java.lang.OutOfMemoryError:位图大小超过VM预算

你的位图非常大(特别是一个~9MB)并且你的内存不足。使用一些较小的位图。