Android 使用大小限定符支持多个屏幕

Android 使用大小限定符支持多个屏幕,android,Android,我们希望设计特定分辨率的布局,如下所示: 三星Duos:480 X 800安卓版本4.0.4 HTC速度:540 X 960 为此,我们已为每个文件夹创建了布局文件夹,如下所示: 布局图-w480dp-h800dp 布局图-w540dp-h960dp 假设我们在三星duaos上运行应用程序,它应该从中选择布局 layout-w480dp-h800dp文件夹出现错误,无法启动活动 错误是: android.content.res.Resources$NotFoundException:资源ID#0

我们希望设计特定分辨率的布局,如下所示:

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

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

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

假设我们在三星duaos上运行应用程序,它应该从中选择布局 layout-w480dp-h800dp文件夹出现错误,无法启动活动

错误是:

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

这意味着它无法找到活动所需的布局。同样的情况也发生在HTC Velocity上

我们做错什么了吗


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

一定是某些资源有问题。请尝试从drawable中删除图像文件,然后再次添加该文件以生成应运行的项目。

是否尝试清理和生成?这通常会有帮助,因为看起来R代已经损坏了

您的假设是错误的。 布局-w480dp-h800dp不适用于480x800 px屏幕。 DP和PX有很大不同。请看这个

你确定如此相似的手机需要不同的设计吗?我认为这是毫无意义的

在我看来,你最多应该区分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。但是我不确定这是否有效…

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

实际上,我们已经验证了R.java的“资源ID”35; 0x7f030029,并发现它正在谈论布局文件。您是否尝试过我所说的内容?相信我作为培训师,我总是这么说“永远不要相信Eclipse“。是的,但得到了相同的结果。没有,我们正试图通过定义布局文件夹和尺寸标签来为三星Duos和HTC Velocity设计布局。我们还尝试了同样的方法,将像素转换为dp,即分辨率为480 X 800的layout-2720dp-h1200dp,但得到了相同的结果。您仍在尝试做一些奇怪的事情。。。当谷歌说720dp是10英寸屏幕时,2720dp怎么可能是你们的屏幕尺寸(4英寸HTC)?!马克,我们知道了你的观点,但是想考虑一下高度,你是否只为这2个设备申请?如果是的,并且你真的想区分它们,那么px到dp的计算应该是可行的。请记住,当屏幕高度为800px时,活动的实际工作空间会因为系统栏而变小。当我的问题回答为“否”时,请更改您的设计-这两个设备应具有相同的布局,您只需正确使用dp、权重等。我们已尝试使用res/layout-sw480dp/activity_home.xml并在三星duos上执行该应用程序,但结果相同。让我解释一下,正如您所知,android设备具有不同的尺寸。我们的主屏幕的设计应该适合或覆盖整个屏幕。为此,我们从motorolla 320 x 480开始,并相应地设置布局,然后选择Samsung Duos,这里的宽度不是问题,但需要按高度放大资源,因此我们已经准备了相同的图形,但我们的应用程序应该知道,如果它在motorolla上运行,则从“布局”中选择布局文件夹,如果三星Duos,则布局-。但是没有一个想法仍然有效。。所以现在我很确定你的设计是错误的:)现在你要为三星Duos修改尺寸,之后你会遇到HTC desire/HTC One/Galaxy S I、II、III的问题。当你说你必须为三星Duos专门“准备图形”时,这意味着你的应用程序设计对Android来说是错误的。您应该使用九个补丁作为图形,使用fitCenter/CenterInside的ImageView,使用xml内置的渐变绘图工具等。当您设计应用程序时,您必须为所有不同于100px的屏幕提供图形-祝您好运:P