我正在为我的游戏升级图形,以便在更高密度的设备上更好地显示。我创建了更高 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 转换。