一般因为内存有限,如果在android上不加处理地在ImageView上加载大图,非常容易造成卡顿甚至OOM,所以常见的框架如glide都会自动对图片进行压缩,然后再加载。但有时候这并不是我们的目的,当我们想看高清图片时必须获取到原图。这里推荐使用LargeImageView框架,它支持手势缩放,而且还有比另一个有名的框架subsampling-scale-image-view对比优势的地方:
1、LargeImageView初次加载后,还能进行缩小,subsampling-scale-image-view不能;
2、LargeImageView可以放大的级数更多;
3、LargeImageView双击放大时的倍数较适宜,subsampling-scale-image-view直接放大到最大倍数。
但这里要说一个LargeImageView的坑,最近有其他部门同事反映,他们的手机在查看大图时图片仍然是模糊的,如OPPO R11和小米Note s4等,我定位了好久发现是LargeImageView的问题,最后发现问题在于BlockImageLoader类的以下方法:
private static Bitmap acquireBitmap() {
Bitmap bitmap = bitmapPool.acquire();
if (bitmap == null) {
bitmap = Bitmap.createBitmap(BASE_BLOCKSIZE, BASE_BLOCKSIZE, Bitmap.Config.RGB_565);
}
return bitmap;
}
这里的Bitmap.Config.RGB_565应该改为Bitmap.Config.ARGB_8888,问题解决!
万幸最新的版本已经解决了这个问题,而且还是一个月前才提交的,大家可以放心使用。
导入到AndroidStudio: compile 'com.shizhefei:LargeImageView:1.1.0'