我不明白为什么建议所有密度都有一个drawable(图像)(ldpi,...,xxhdpi)。
添加一个具有最高密度(xxxhdpi)的文件并且以编程方式缩小该图像是不是更好(例如,对于标签图标,我可以设置一个明确的dp大小)?
因此,我只需要管理一个文件,APK文件的大小就会更小。我认为性能劣势不应该很大。
更新1:
更具体一点:我在使用高密度图像(PNG文件)时从未注意到任何质量损失,该图像在我的mdpi设备上缩小为显式dp值。
所以我在考虑将没有设计人员(以及更高的APK文件大小)管理多个图像文件作为编码器的缺点可能超过的优点。特别是如果我要定位更新的设备(API> = 17)。
更新2:
在我看来,我更像是一名编码员,而不是一名设计师。在@mes的麦克风示例图像中我可以使用左侧麦克风的高密度版本并将其缩小而没有明显的缺点吗?
答案 0 :(得分:2)
没有明显的优势,当设计师或你简单地减小图像尺寸并放入ldpi时,实际意义是为小尺寸绘制另一幅图像,因为在很多情况下,当简单地减小图像尺寸会产生不纯净和低质量图像,一个优秀的设计师将绘制另一个图像,其中的细节很少,这是一个例子,只有在这种情况下值得将不同的图像放在不同的文件夹中
因此,我只需要管理一个文件,APK文件的大小就会更小。我认为性能劣势不应该很大。
是的,你是对的,没有显着的性能提升,而且apk尺寸也在增加,这就是为什么不值得缩小相同图像的原因。
答案 1 :(得分:0)
这有两个原因:
从技术角度来看,适用于不同屏幕外形的不同画面的Android方式是合适的。
答案 2 :(得分:0)
第一个优点是所提到的:不同尺寸的不同图像。
第二个优点是内存/代码效率:android上的1000x1000像素图像需要1000x1000x4~ = 3.8 mb的内存,这实际上浪费在较小的屏幕上,每个应用程序可以拥有16mb可用内存。您可以尝试loading the bitmaps efficiently,但是为每个图片添加/维护的代码很多,并且在某些情况下也会出现性能问题。