Android drawables DPI

时间:2012-10-29 15:01:55

标签: android drawable dpi hdpi

我有一个Android应用程序,在这些文件夹的每一个中都有4个版本的相同图像:

可绘制-LDPI /
可绘制-MDPI /
可绘制-HDPI /
可绘制-xhdpi /

图像之间的唯一区别是尺寸,我只需拍摄原始大图像并按照公式缩小:

120dp lpdi,1 dp = 0.75 px
160dp mpdi,1 dp = 1 px
240dp hdpi,1 dp = 1.5 px
320dp xhpdi,1 dp = 2 px

问题是我打算有超过100个图像,所以减少文件大小我不能只把xhdpi版本放在drawables /文件夹而不是每个图像的4个版本,然后Android可以将图像缩放为需要?这样做的缺点是什么?它只是在性能和​​文件大小之间进行权衡吗?

3 个答案:

答案 0 :(得分:1)

您可以将xhdpi版本放在可绘制资源中。然后在layout / xml文件中指定dp中的图像尺寸。 Android会相应地缩小您的图像。只要您缩小可绘制资源的质量,图像的质量就不会改变。

答案 1 :(得分:1)

仅拥有xhdpi资源会降低您的应用性能。此外,在低范围设备(小屏幕和小内存)上,VM很可能在处理这些大位图时耗尽内存并崩溃。

您可以在高端设备上开发所有内容,并使用简单的photoshop自动化来创建其他资源,但最好使用比您的应用程序更大的APK,而不是在中低端设备上工作。

另一种选择可能是导出几个APK(每个屏幕类型一个),并使用清单指定它支持的屏幕尺寸,并让市场过滤正确的APK到正确的设备。

答案 2 :(得分:0)

你可以。缺点可能是图像质量稍差:考虑到hdpi显示你需要缩放240/320倍,即0.75,或者说,例如在1D像素线中,您可以在4个源像素中组成3个目标像素。大部分时间它看起来都很好,但我想像一些像素艺术可能是个例外。我想这可能会慢一些,并且使用的内存比它多,但我没有测量,所以我无法确定。

P.S。我也在使用这种方法(仅提供xhdpi资源)。