【安卓开发】为什么图片要适配不同手机

场景

开发中经常会有一个现象,在一部720P的手机,使用了一个图标,图标放在了hdpi目录下,看着挺顺眼,然后拿一部480P手机一看,咦,还是那么顺眼,最后拿一部1080P的手机一看,见鬼了,图标不止变大了,还变模糊了,有好多像素点!!

原因

【安卓开发】为什么图片要适配不同手机_第1张图片

根据上面这段话一看就知道原因了
原来当我们放图标的时候,放在hdpi的包下,那么默认适配的就是720P的手机,

  • 对于480P的手机
    如果使用480P的手机看界面,会发小图标相对整个界面变小了,但是由于全部控件都变小了,所以很多时候,并不会去察觉有什么不妥,更多的是影响内存消耗,要知道,480P的手机属于低端手机,对内存的消耗就更加苛刻,此时使用720P包下的图片资源,必定带来内存的高消耗。
  • 对于1080P的手机
    此时内存消耗的重要性相比之下反而不是那么重要了,大环境加载小内存,没毛病。可是界面上就赤裸裸地暴露了我们开发上的不足,全部界面资源被拉伸,控件资源由于是绘制的,影响不大,但是图片资源是加载的,在高像素硬件下使用了低分辨率图片,为了保持原有的界面控件相对的占用控件,图片就必须得拉伸,这就导致了图片分辨率降低,同时拉伸后内存消耗也相应地增大

如何解决

  • 牺牲界面
    把放在hdpi包下的图标放到xhdpi包下,就如截图上说的一样,但这样做在720P下的正常界面,在1080P下相对于整体界面会变得小一点,在有些场景下,相对于图标变得很模糊很大来说,图标小一点其实也是可以接受的。
  • 牺牲内存
    望文生义,再配置一套1080P的图标,首先你的APK包会变大,加载图片的时候,消耗的内存也相应增多,要么只留一套1080P图片,这样子720P,480P手机使用你的APP的时候,对内存的消耗会很大,应用更卡

你可能感兴趣的:(【安卓开发】为什么图片要适配不同手机)