前言
由于图片每个像素点一般情况下,在android中会占用4个字节。对于一个1024*1024分辨率的图片就会占用4MB内存,可见图片对于内存的使用是非常大的,所以在Android系统中处理图片基本上都会对其进行压缩,比如设置采样率,分辨率等参数。
那么如果有一张特别大的图,如何不压缩进行处理。其实也很简单,可以使用 BitmapRegionDecoder。
原理
通过BitmapRegionDecoder 设置一个输入流,然后动态的取局部区域生成新的bitmap对象就可以了。贴下具体代码:
public class BigImageView extends android.support.v7.widget.AppCompatImageView {
private BitmapRegionDecoder mBitmapRegionDecoder;
private Bitmap mBitmap;
private int mBitmapWidth, mBitmapHeight;
private BitmapFactory.Options mOptions;
private Rect mRect;
public BigImageView(Context context) {
super(context);
}
public