鉴于iOS这边出现了因为图片分辨率导致APP崩溃的情况,写一下系统如何显示一张图片的。
首先是图片的几种格式,

Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位 
Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位
Bitmap.Config RGB_565:每个像素占四位,即R=5,G=6,B=5,没有透明度,那么一个像素点占5+6+5=16位
Bitmap.Config ALPHA_8:每个像素占四位,只有透明度,没有颜色。

一般情况下我们都是使用的ARGB_8888(iOS和安卓都是用这个),由此可知它是最占内存的,因为一个像素占32位,8位=1字节,所以一个像素占4字节的内存。

然后是图片占内存容量计算公式: 图片所占内存大小 = 图片长度(像素) * 图片宽度(像素) * 一个像素所占内存空间(单位:字节)
也就是说,一张分辨率为512_512大小的图片,他占用的内存大小为512_512*4 = 1048576(字节)= 1024KB = 1MB.....

再然后就是iPhone6和6p都是1G的内存,所以在iOS里面,内存是很珍贵的。。。。一般来说,为了高效的显示图片,一张图片的占用内存最好不要超过1024*1024。。

PS:还有一点是比较坑爹的,就是iOS这边图片的占用内存是按照2的n次方去算的,比如说,一张220_220的图片,他会按照256_256_4的内存去计算。。。一张129_60的会按照256_64_4的方式去计算。。所以高与宽最好都接近2的n次。