Java乔晓松-android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug

时间:2023-01-01 23:58:40

由于android获取图片过大是会出现内存溢出的Bug

07-02 05:10:13.792: E/AndroidRuntime(6016): java.lang.OutOfMemoryError
解决这个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为nullbitmap = 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 设为 falsebitmap = BitmapFactory.decodeFile(imagePath, options);// 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;}



如有疑问请发送到我的邮箱9656266509@qq.com,可以发送源码给你...