我想问是否有必要使用所有分辨率图标(mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi),或者我只能提供xxxhdpi大小并让设备自行处理缩放。它会导致性能问题还是可以在没有任何额外负载的情况下完成?
如果使用VectorDrawable,则无需为每种密度(mdpi,xhdpi等)添加资源。从API 21(Lollipop)或支持库(或AndroidX)开始支持VectorDrawable。
对于简单类型的图像(通常是图标),可以避免使用矢量图形为每种浓度创建单独的图像。因为矢量图形使用几何线路径而不是像素来定义插图,所以可以按任何大小绘制它们而无需缩放伪像。
另一方面,对于图像(如PNG),您必须为每种密度添加适当的图标,因为Android会尝试缩放图像。缩放时,图像可能会变得模糊,从而降低UI的质量。
要在具有不同像素密度的设备上提供更好的图形质量,应在应用程序中提供每个位图的多个版本-每个密度桶一个版本,并具有相应的分辨率。否则,Android必须缩放您的位图,使其在每个屏幕上占据相同的可见空间,从而导致缩放伪影,例如模糊。