图片压缩就是为了避免我们内存的溢出。而BitMap是android系统中对图像处理最重要的一个类,所以我们可以用他来对图像进行剪切,压缩,一系列操作。常用的压缩方法有质量压缩,采样率压缩,缩放法压缩,RGB_565压缩等。
质量压缩
质量压缩不会减少图片的像素,他是在保持像素的前提下来改变图片的透明度,但是图片的长,宽,像素都不会变,所以他占用的内存也不会改变。
采样率压缩
采样率压缩其实就是缩放bitamp的尺寸,通过调节其inSampleSize参数,比如调节为2,宽高会为原来的1/2,宽高都减少了,内存自然也就减少了。
缩放法压缩
放缩法压缩使用的是通过矩阵对图片进行裁剪,也是通过缩放图片尺寸,来达到压缩图片的效果,和采样率的原理一样
RGB_565压缩
这是通过压缩像素占用的内存来达到压缩的效果,一般不建议使用ARGB_4444,因为画质实在是辣鸡,如果对透明度没有要求,建议可以改成RGB_565,相比ARGB_8888将节省一半的内存开销。
图片二次采样压缩
1.第一次采样
inJustDecodeBounds设置为ture,只会加载图片的边框,不会加载图片的具体内容。
2.根据原图的宽高,结合控件的宽高计算出缩放比例,然后通过inSamplesize(in 三pou Size)对图片进行尺寸的缩放。
3.二次采样时需要将图片加载出来显示,不能只加载图片的框架,因此inJustDecodeBounds属性要设置为false。