Android图片密度(DPI)

4

我有一个Android应用程序,它包含相同图像的4个版本,分别在以下每个文件夹中:

drawable-ldpi/
drawable-mdpi/
drawable-hdpi/
drawable-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/文件夹中,这样Android会按需缩放图像。这种方法的缺点是什么?这只是性能和文件大小之间的权衡吗?

3个回答

1

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


1

只有xhdpi资源会严重降低应用程序的性能。而且在低端设备(小屏幕和小内存)上,很可能会因为处理这些大位图而耗尽虚拟机内存并崩溃。

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

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


0

可以这样做。缺点可能是图像质量稍微差一些:考虑到hdpi显示器需要缩放240/320倍,也就是0.75,或者说在1D像素线中,你需要从4个源像素中组成3个目标像素。大多数情况下它看起来非常好,但我想有些像素艺术可能是一个例外。我猜这可能会比它本来应该的更慢,并且使用更多的内存,但我没有测量过,所以不能确定。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接