只在Android应用中使用XHDPI drawables?

Emi*_*mil 46 android screen-resolution drawable

如果您计划在不久的将来支持LDPI,MDPI,HPDI和XHDPI,那么只在项目中包含XHDPI drawable并让设备将它们扩展到所需的分辨率是否可以?

我已经测试过在Photoshop中将drawables调整为MDPI和HDPI,然后将结果与仅通过Android重新调整的XHDPI drawable进行比较,我看不出任何差别.采取这种捷径是不好的设计?不必将每个可绘制的大小调整为3种不同的分辨率是很好的.

计划使用目标SDK是2.1或2.2.

BR Emil

Wil*_*Kru 25

我想这是一个很好的方式.我能想到的唯一缺点是小规模设备上的资源开销和可能的工件,因为缩减.实际上在今年的Google IO Chris Pruett建议只嵌入高分辨率资产,让opengl处理扩展.

  • 关于Chris Pruett的引用有点误导,因为它是关于你让GPU降低规模的游戏. (11认同)

Ian*_*ton 15

从Android 1.6开始,处理不同的密度,包括XHDPI(直到2.2才正式添加).您的应用程序将首先查找与其密度匹配的图像,但它可以查看更大的"桶",如XHDPI,然后为您执行缩放.

最好为要支持的密度包含特定资产.100x100的图像需要40kb; 和图像200x200需要160k(未压缩).因此,MDPI设备上使用的任何XHDPI资产都是您需要的数据量的四倍,必须在应用程序启动并准备好资源时处理这些数据.较低的内存使用意味着更高的效率,更少的OutOfMemoryException机会.

此外,当自动缩放时,特定类型的图像看起来会很糟糕.特别是,具有细纹或精细图案的图像将使其细节变得混乱.当您手动缩小图像时,您可以选择最符合您需求的算法(线性,双三次,Lanczos等).

如果您担心自己调整大小所需的时间,可以使用批处理或使用Nine Patch Resizer等工具:http://code.google.com/p/9patch-resizer/