2

我正在为我的游戏升级图形,以便在更高密度的设备上更好地显示。我创建了更高 dpi 的艺术品,将其添加到正确的位置(res/layout/drawable-hdpi)。我在清单中添加了以下内容:

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

它工作得很好......除了一张我忘记升级并从drawable-mdpi中提取的图像。我放大了该图像,将其放入 drawable-hdpi 并重新启动。现在游戏只从 mdpi 中提取图像。

我可以用 git 验证我对代码库所做的唯一更改,因为它正在工作是添加新的图像文件。出于故障排除的目的,我尝试删除添加的图像并将我的 git repo 重置为它工作时的状态。在这两种情况下,它仍然只是总是从 mdpi 加载。这让我相信这可能是模拟器的问题。我正在我的汽车上的上网本上开发这个,这有时会给我带来模拟器问题(通常需要一个小时左右才能启动并且在 Atom 上运行非常非常缓慢)。

任何人都知道什么可能会阻止游戏从 hdpi 中提取?

编辑

经过大量故障排除后,我仍然没有解决这个问题。看来我的应用程序可能在兼容模式下运行。它不是显示“邮票”大小,而是使用整个wvga800屏幕;但 getDisplayMetrics().density 返回 1.0。模拟器状态它设置为高(240)dpi,所以我假设密度应该> 1.0。

随机数据点:将 drawable-hdpi 目录更改为 drawable-large 会导致加载较大的图像。在那种情况下 getDisplayMetrics().density 仍然是 1.0,所以我无法进行正确的 px->dp 转换。

4

2 回答 2

4

res/layout/drawable-hdpi is not the correct location. res/drawable-hdpi is the correct location.

于 2010-08-05T01:51:22.710 回答
2

在这里查看我的问题

Android Eclipse 模拟器问题:将 WVGA(hdpi) 作为 mdpi 屏幕运行

我修复它的方法是删除 AVD 并创建一个新的。我仍在努力寻找问题的具体答案。到目前为止,您所能做的就是重新启动计算机和/或制作新的 AVD。

于 2010-07-31T18:44:18.857 回答