如您所知,Android应用程序具有不同的DPI,并且在Android应用程序中,我们可以在不同的ldpi,mdpi,hdpi和xhdpi文件夹中添加具有不同DPI的drawable.
问题是,当我们想要支持所有DPI时,我们应该添加具有所有不同尺寸的图标或仅添加最大尺寸的图标?
我的意思是假设我有一个带有图标的动作栏项目.我是否应该使用24×24(在drawable-mdpi文件夹中),36×36(在drawble-hdpi文件夹中),48×48(在drawable-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中引入的.