Android 开发中 drawable 有必要放多套分辨率的图片资源吗?

如果只放xx-hdpi分辨率的图片,会有什么问题吗? 因为android会自动根据手机的不同分辨率等级,自动按比例缩放图片资源的呀。 除非想针对不同分…
关注者
98
被浏览
23,171

6 个回答

有必要。我之前和你想的一样,觉得只放大分辨率的图片就够了,省空间省力,最后遇到了不少麻烦。

  • 小屏幕设备通常配置略差,大尺寸的资源直接使用很容易导致内存不足崩溃
  • 9-patch也会按比例缩放,当一个9-patch的patch尺寸(就是那个黑色像素的长度)被缩放后四舍五入到0了,神奇的事情就会发生——崩溃(我记得是在低版本的会)!变形!
  • 针对特定解析度的屏幕,你可以生成锐利清晰的位图,但是如果缩放,在非针对分辨率下图标就会有点模糊

希望能帮到你。

针对问题的补充:

一般来说,你的图片支持到mdpi就足够了。现在的手机或者平板在hdpi以下的已经是少之又少,基本上不用考虑了。

如果你是在google play上上架。建议mdpi,hdpi,xhdpi,xxhdpi每一种都放一套(ldpi就算了,基本看不到),因为google play会根据不同的手机density来打不同的apk包(举个栗子,如果是hdpi的机器,下载下来的就只有hdpi的资源)

如果是在国内的市场话。建议只放一套(h或者xhpdi),因为国内市场是没有上面那种机制的,放多套资源会导致安装包变得很大。

此外: Android在没有找到相应dpi的图片时,会用其他density的图片进行缩放处理。因此会损失一些性能和内存(作为缩放的buffer使用)