我们是否需要将具有不同dpi的所有图像添加到Android应用程序中

前端之家收集整理的这篇文章主要介绍了我们是否需要将具有不同dpi的所有图像添加到Android应用程序中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如您所知,Android应用程序具有不同的DPI,并且在Android应用程序中,我们可以在不同的ldpi,mdpi,hdpi和xhdpi文件夹中添加具有不同DPI的drawable.

问题是,当我们想要支持所有DPI时,我们应该添加具有所有不同尺寸的图标或仅添加最大尺寸的图标?

我的意思是假设我有一个带有图标的动作栏项目.我是否应该使用24×24(在drawable-mdpi文件夹中),36×36(在drawble-hdpi文件夹中),48×48(在drawable-xhdpi文件夹中)添加此操作栏项的图标,…..

或者我只需要在xxxhdpi文件夹中添加一个大小为96×96的图标,android会为其他DPI设置质量好的图标吗?

最佳答案
TLDR见下面的粗体

后来为Android添加了不同的密度文件夹,这意味着……

如果你想要懒惰并且只是添加一个资产,那么如果你的最小应用目标 = 8,则为XHDPI.这是因为系统会上下调整资源,但您仍然希望以尽可能高的分辨率开始.

如果您想完全控制资产的缩放方式,那么您可以通过各种方式为所有/部分密度提供自己的密度.在实践中,我通常提供如上所述的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中引入的.

列表取自this dev链接获取更多信息.

这是我在职业生涯中使用的许多应用程序的方法,包括Google和Google的应用程序.英国广播公司,没有问题.

猜你在找的Android相关文章