0

我们想为特定分辨率设计布局,如下所示:

三星 Duos:480 X 800 Android 版本 4.0.4 HTC 速度:540 X 960

为此,我们为每个创建了布局文件夹,如下所示:

布局-w480dp-h800dp 布局-w540dp-h960dp

假设如果我们在 samsung duaos 上运行应用程序,它应该从 layout-w480dp-h800dp 文件夹中选择布局,但它给出错误并且无法启动活动。

错误是:

android.content.res.Resources$NotFoundException:资源 ID #0x7f030029

这意味着它无法找到活动所需的布局。HTC Velocity 也是如此。

我们做错了什么吗?

如果您有任何想法,请告诉我们。

4

4 回答 4

0

一定是某些资源的问题尝试从drawable中删除图像文件并再次添加它构建它应该运行的项目

于 2013-02-19T11:40:43.510 回答
0

您是否尝试过清理和构建?它通常会有所帮助,因为看起来 R 代已损坏

于 2013-02-19T11:42:53.970 回答
0

您是否有与您的活动相关的默认布局?我的意思是每个文件夹都包含同名的布局。

于 2013-02-19T11:56:43.233 回答
0

你的假设是错误的。layout-w480dp-h800dp 不适用于 480x800 像素的屏幕。DP与PX截然不同。请阅读此http://developer.android.com/guide/practices/screens_support.html

你确定你真的需要为如此相似的手机提供不同的设计吗?我会说这是没有意义的。

在我看来,U 最多应该区分 3 种类型的设备。

res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

如果你仍然想做你想做的事情,你可以尝试 px 而不是 dp。但我不确定这是否会奏效......

于 2013-02-19T11:45:05.437 回答