如您所知,Android 应用程序具有不同的 DPI,并且在 Android 应用程序中我们可以添加drawable
不同 DPI 的情况ldpi
, mdpi
, hdpi
and xhdpi
文件夹。
问题是,当我们想要支持所有 DPI 时,我们应该添加所有不同尺寸的图标还是只添加最大的图标?
我的意思是,例如假设我有一个带有图标的操作栏项目。我是否应该添加此操作栏项目的图标24x24(在drawable-mdpi文件夹中),36x36(在drawble-hdpi文件夹中),48x48(在drawable-xhdpi文件夹中),.....
或者我只需要添加一个大小为 96x96 的图标xxxhdpi
文件夹和android会为其他DPI设置高质量的图标吗?
TLDR 请参阅下面的粗体部分
后来为 Android 添加了不同密度的文件夹,这意味着......
如果您想偷懒,只添加一项资产,那么最好的选择可能是HDPI资产如果你的最小应用目标 and XHDPI if its >= 8。这是因为系统会上下缩放资源,但您仍然希望以尽可能最高分辨率开始。
如果您想完全控制资产的扩展方式,那么您可以通过各种方式为所有/部分密度提供您自己的资产。在实践中,我通常提供如上所述的 HDPI / XHDPI,并提供徽标 / AB 图标 / 应用程序图标等的所有资源桶。我通常发现自动缩放非常好并且适用于大多数情况,但有时必须提供如果它是一个小资产/包含小文本等,则需要额外的 LD/MD 资产。另外,如果我复制 XXXHDPI 之类的所有资产,我会得到相当好的 apk 膨胀。
您还可以使用 IDE 内置工具一次为多种密度添加单个资产。在 Android Studio 0.6 中,这是“文件”->“新建”->“图像资源”,然后会出现一个向导。
我从未注意到或听说过允许 Android 自动扩展资产会对性能产生任何影响 - 大概这是在硬件中完成的。
当自动缩小到 LDPI 时,它可能看起来不太好,所以您可以选择为所有其他密度提供您自己的缩放资产。
取自以下链接
- ldpi:低密度屏幕;大约120dpi。
- mdpi:中密度(在传统 HVGA 上)屏幕;大约160dpi。
- hdpi:高密度屏幕;大约240dpi。
- xhdpi:超高密度屏幕;大约 320dpi。添加到 API 级别 8
- nodpi:这可用于您不希望缩放以匹配设备密度的位图资源。
- tvdpi:屏幕介于 mdpi 和 hdpi 之间;大约213dpi。这不被视为“主要”密度组。它主要用于电视,大多数应用程序不需要它 - 提供 mdpi 和 hdpi 资源对于大多数应用程序来说就足够了,系统将根据需要缩放它们。此预选赛是通过API 级别 13。
清单取自this开发链接以获取更多信息。
这是我在职业生涯中在许多应用程序上使用的方法,包括 Google 和 BBC 的应用程序,并且没有出现任何问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)