BitmapFactory.decodeFile()返回为null原因有多种,
其中一种为使用的图片太大导致内存暴掉,可以修改为以下这种方案:
BitmapFactory.Options options;
try {
String imageInSD = "/sdcard/UserImages/" + userImageName;
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);
return bitmap;
} catch (OutOfMemoryError e) {
try {
options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD, null, options);
return bitmap;
} catch(Exception e) {
Log.e(e);
}
}
如果这样不行的话,就要采用另外一种流的方式,如以下这种方案:
InputStream inputStream = null ;
try {
inputStream = assetManager.open("b.png");
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (Exception e) {
}
imageView.setImageBitmap(bitmap);