TLDR 见下面的粗体
后来为Android添加了不同的密度文件夹,这意味着......
如果您想偷懒并且只添加一项资产,那么最好的选择可能是HDPI资产(如果您的最小应用程序目标 < 8和XHDPI如果其>= 8)。这是因为系统会按比例放大和缩小资源,但您仍然希望以可能的最高分辨率开始。
如果您想完全控制资产的缩放方式,那么您可以通过各种方式为所有/部分密度提供您自己的。在实践中,我通常如上所述提供 HDPI / XHDPI,并为徽标 / AB 图标 / 应用程序图标等提供所有资源桶。我通常发现自动缩放非常好,适用于大多数情况,但偶尔需要提供和额外的 LD/MD 资产,如果它是一个小资产/包含小文本等。另外,如果我为 XXXHDPI 之类的东西复制所有资产,我会得到相当不错的 apk 膨胀。
您还可以使用内置工具的 IDE 一次为多个密度添加单个资产。在 Android Studio 0.6 中,这是 File->New->Image Asset 并且会出现一个向导。
我从未注意到或听说过允许 Android 自动扩展资产对性能的任何影响——大概这是在硬件中完成的。
当自动缩放到 LDPI 时,它可能看起来不太好,因此您可以选择为所有其他密度提供自己的缩放资产。
取自以下链接
- ldpi:低密度屏幕;大约 120dpi。
- mdpi:中等密度(在传统 HVGA 上)屏幕;大约 160dpi。
- hdpi:高密度屏幕;大约 240dpi。
- xhdpi:超高密度屏幕;大约 320dpi。在 API 级别 8 中添加
- nodpi:这可用于您不希望缩放以匹配设备密度的位图资源。
- tvdpi:屏幕介于 mdpi 和 hdpi 之间;大约 213dpi。这不被视为“主要”密度组。它主要用于电视,大多数应用程序不需要它 - 为大多数应用程序提供 mdpi 和 hdpi 资源就足够了,系统将根据需要对其进行缩放。此限定符是在API 级别 13 中引入的。
来自此开发链接的列表以获取更多信息。
这是我在职业生涯中用于许多应用程序的方法,包括用于 Google 和 BBC 的应用程序,并且没有出现问题。