其实就是BITMAP对象过大了,在通过URI获取BITMAP对象的时候用getSmallBitmap()这样的方式就好,缩小对象的体积,不然就是OOM,如果你在写的时候还加了try….那么你可能基本看不到报错的信息。
附上方法:
public static Bitmap getSmallerBitmap(Bitmap bitmap){
int size = bitmap.getWidth()*bitmap.getHeight() / 160000;
if (size <= 1) return bitmap; // 如果小于
else {
Matrix matrix = new Matrix();
matrix.postScale((float) (1 / Math.sqrt(size)), (float) (1 / Math.sqrt(size)));
Bitmap resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return resizeBitmap;
}
}