【发布时间】:2014-07-28 15:49:46
【问题描述】:
问题
我有一张各种背景的图集(在 HDPI 文件夹中)大小为 5760 x 459。最初,文件大小为 1.5MB。
我已经在一些设备上进行了测试,包括 Nexus 10 平板电脑(从 XHDPI 文件夹中获取更大版本的文件)、通用平板电脑(使用 MDPI)、Galaxy Ace 手机(再次使用 MDPI)等等工作正常。
不过,我最近拿到了一部运行 KitKat 的新手机。但是,看起来这款手机的规格非常低。 (1GB 存储空间,249MB RAM)。
现在,当我在这款手机上运行我的应用程序时,它使用 HDPI 版本的资源(如上所述)。没有错误,应用程序运行,但此特定资源仅显示为纯黑色。
我尝试了什么?
虽然可能是内存问题,所以我使用各种工具等将文件大小减小到 182kb。但是,当我运行该应用程序时,我遇到了同样的问题。
所以,我将 LDPI 图像复制到 HDPI 文件夹中(显然像素数较低),然后它运行了……它显示 OK(文件大小大于 182kb )。
这里发生了什么?手机的物理分辨率为 900 x 540。图集中的每个单独图像都是 960 x 459,因此,稍加缩放后,它应该与其他设备一样适合。
让我感到困惑的另一件事是,我的 XHDPI 文件夹包含一个图集,其中每个单独的背景大约是 Nexus 10 屏幕宽度和高度的 1/2,因此会按比例放大。但是,使用 Google 的缩放法则 (Android: Supporting Multiple Screens),在缩放之后,HDPI 图集中包含的每个单独的背景图像大约是我正在使用的手机屏幕的大小,因此不需要太多缩放(而我会再次喜欢使用屏幕大小的 1/2 的图像)。
为什么这款手机无法使用当前大小的文件(物理大小,而不是文件大小),有什么方法可以更好地管理或提供更多替代资源(仅 LDPI、MDPI、HDPI 和 XHDPI)?
【问题讨论】:
-
您的图集纹理非常宽,大多数(据我所知)设备支持最大 4096 或 2048 大小的纹理。
-
有趣的@harism,我以前没听过这个!因此,该图集是(近)全屏背景图像的图集。现在,在我的高分辨率 (2560 x 1600) 的 Nexus 10 上,我在图集中的单个图像是 1310 * 612,所以它可以放大以适应屏幕,现在在我的 hdpi 资源上,这个手机拾取的资源与此屏幕大小大致相同 - 无需调整大小(因为我遵循 Google 对此的建议)如何确保此手机拾取的资源也约为物理屏幕的 1/2 大小?
标签: android graphics resources png scaling