学习日记之图像缩略图。之前也用过bitmap但是没有仔细去了解,包括今天也没有特别的熟悉,只是说把学到的记录下来,怕以后忘。我们将本地的图片放在页面上是,如果不做处理非常容易引起OOM内存溢出。注释很详细我就不多说了。
BitmapFactory.Options options = new BitmapFactory.Options();//需要一个options对象来设置图像的参数。
options.inJustDecodeBounds = true;//这个参数为true的时候标示我们在下一步获取的old_bmp并不是一个图像,返回的只是图像的宽,高之类的数据,目的是得到图像的宽高,好自定义处理。
Bitmap old_bmp = BitmapFactory.decodeFile(path, options);//在这里我们得到图像的一些数据,path是本地图片的路径。
options.inSampleSize = options.outWidth/200;//计算出缩小倍率,我现在是把宽度写死200px,你也可以获取你的ImageView的宽度,从而计算出缩小倍率。如果options.inSampleSize = 10 的话,意思是长和宽同事缩小10倍。
options.inJustDecodeBounds = false;//这次我们需要真正的图像,所以在之前我们改为true现在要改回来。
options.inPreferredConfig = Bitmap.Config.RGB_565;//ALPHA_8 代表8位Alpha位图ARGB_4444 代表16位ARGB位图ARGB_8888 代表32位ARGB位图RGB_565 代表8位RGB位图,感兴趣的同学可以详细的搜一下。
options.inDither = false; //不进行图片抖动处理
options.inPreferredConfig = null; //设置让解码器以最佳方式解码
Bitmap new_bmp = BitmapFactory.decodeFile(path, options);//得到我们想要的图片,也就是缩略过的。