只要在读取时加上图片的Config参数,可以很有效减少加载的内存,从而跟有效阻止抛out of Memory异常。
* 以最省内存的方式读取本地资源的图片
* @param context
* @param resId
* @return
*/
public Bitmap readBitMap( int resId){
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
// 获取资源图片
InputStream is = getResources().openRawResource(resId);
return BitmapFactory.decodeStream(is, null, opt);
}```
然后在适当的时候及时回收图片占用的内存
if (bitmap != null) {
bitmap.recycle();
bitmap = null;
}```