写作业的时候发现内存溢出会报一个错误【java.lang.OutOfMemory】
所以我对我的代码进行部分的修改,这里提供展示,如果有遇到一样的问题可以进行参考:
源代码:
holder.imgThumb.setImageBitmap(
BitmapFactory.decodeFile(imgList.get(position).getFile_path(),options)
);
修改代码:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4; //等于数字n即代表压缩成原来的1/n,当数字小于1时会被当成1,重点是这一句
options.inJustDecodeBounds = false; //该属性表示是否只是处理图片的一些宽高值。当值为true时,decodeFile()方法返回null,但是options里面的outHeight/outWidth等参数还是会得到对应值
options.inPreferredConfig = Bitmap.Config.RGB_565;
options.inDither=true;//是否抖动
holder.imgThumb.setImageBitmap(
BitmapFactory.decodeFile(imgList.get(position).getFile_path(),options)
);