ImageView
制作一个显示图片的activity,类似相册那样的,可以移动图片,多点触控的时候放大缩小图片等功能
一般就是用BitmapFactory
来解码bitmap,然后设置imageView.setImageBitmap()
但是遇到了一个问题,就是图片过大的时候(也没多大,也就是手机摄像头拍的照片,4128x3096,13M像素),真机运行会显示空白,什么都没有
但是模拟器运行正常,就是有一点卡。
在网上搜索的时候看到有一些解释
1,因为图片太大导致的OOM(out of memory)错误
在程序中设置try-catch并没有抓到这个错误,而且debug发现,在BitmapFactory
解码图片以后,可以获取到Bitmap的信息,说明也许没有出现这个错误,图片的内存占用仍然在可取范围内
2,需要设置解码的option参数,inSampleSize
这个参数的意思是,把图像的长/宽缩小,再生成Bitmap,inSampleSize的数值是1,2,4这样的比例,然后长/宽就除以这个数值,那么总像素数就除以这个数值的平方
这样的话,内存占用就小了。实际测试的时候,4128X 3096的照片可以显示,内存占用的确小了很多。但是图像放大以后发现果然分辨率也小了。虽然放的不是很大的时候看起来没区别,但是更希望有个解决方案能显示原图的分辨率
而且&