android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug

来源:互联网 发布:mac如何删除文件夹 编辑:程序博客网 时间:2024/05/22 06:19

本文系转载,原文地址:http://www.cnblogs.com/dyllove98/archive/2013/07/02/3167875.html

解决这个Bug的方法就是获取该图片的缩略图,android中的内存是很宝贵的,所以我们就的进一步处理了,获取缩略图的代码如下:

//第一个参数是图片的路径,第二个参数是获取到的缩略图的宽度,第三个参数是获取到的缩略图的高度private static Bitmap getImageThumbnail(String imagePath, int width,            int height) {        Bitmap bitmap = null;        BitmapFactory.Options options = new BitmapFactory.Options();        options.inPreferredConfig = Bitmap.Config.ARGB_4444;        options.inPurgeable = true;        options.inInputShareable = true;        options.inJustDecodeBounds = true;        // 获取这个图片的宽和高,注意此处的bitmap为null        bitmap = BitmapFactory.decodeFile(imagePath, options);        options.inJustDecodeBounds = false; // 设为 false        // 计算缩放比        int h = options.outHeight;        int w = options.outWidth;        int beWidth = w / width;        int beHeight = h / height;        int be = 1;        if (beWidth < beHeight) {            be = beWidth;        } else {            be = beHeight;        }        if (be <= 0) {            be = 1;        }        options.inSampleSize = be;        // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false        bitmap = BitmapFactory.decodeFile(imagePath, options);        // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象        bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,                ThumbnailUtils.OPTIONS_RECYCLE_INPUT);        return bitmap;    }
0 0