我是否需要使用所有drawable,drawable-mdpi,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi和drawable-xxxhdpi?

时间:2019-06-12 13:30:54

标签: android xamarin xamarin.forms

我意识到,如果Android在所需文件夹中找不到图标,Android会尽力而为,但是我发现某些地方会建议上述所有内容,而在其他地方则不包含drawable吗?

如果其他所有选项卡图标图像都填满了,那么我也应该填充drawable吗?

2 个答案:

答案 0 :(得分:3)

如果使用VectorDrawable,则不需要为每个密度(mdpi,xhdpi等)添加资源。从API 21(Lollipop)或支持库(或AndroidX)开始支持VectorDrawable

  

对于简单类型的图像(通常是图标),可以避免使用矢量图形为每种浓度创建单独的图像。由于矢量图形使用几何线路径而不是像素来定义插图,因此可以按任意大小绘制它们而无需缩放伪像。

对于图像(PNG),您必须为每种密度添加适当的图标,因为Android会尝试缩放图像(以便它们可以按比例占据所有设备中的相同区域)。缩放时,图像可能会变得模糊,从而降低UI的质量。

  

要在具有不同像素密度的设备上提供良好的图形质量,应在应用程序中提供每个位图的多个版本-每个密度桶对应一个版本,并具有相应的分辨率。否则,Android必须缩放您的位图,使其在每个屏幕上占据相同的可见空间,从而导致缩放伪影,例如模糊。

您可以阅读更多HEREHERE

编辑

也许您不需要复制 ALL 图标。许多因素可能导致不同的体验,例如使用wrap_content或特定尺寸来控制图标大小,甚至在scaleType中使用不同的ImageView。因此,也许可以从仅添加xhdpixxhdpi文件夹的图标开始,然后在其他屏幕(小显示器,大显示器,低分辨率显示器,高分辨率显示器等)中检查屏幕。然后,您可以仅“复制”必要的图标...但是,如果您的项目或APK的大小相对较小,则不要介意复制这些图标。

甚至还有一些在线工具可以从单个PNG(例如Android Asset Studio网站)为每个密度生成资产。

答案 1 :(得分:0)

如果要添加所有分辨率的可绘制图标,如:

drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxdpi

然后,您无需在drawable文件夹中添加任何其他图标 因为所有设备分辨率都包含在上述可绘制文件夹下