从sd卡里读出图片后有时调用setImageBitmap(bitmap)方法会显示不出图片,仔细考虑过后原来是加载的图片过大导致的,解决办法为:
1BitmapFactory.Options op = new BitmapFactory.Options(); 2 3op.inSampleSize = 2; 4 5//op.inJustDecodeBounds = true; //它仅仅会把它的宽,高取回来给你,这样就不会占用太多的内存,也就不会那么频繁的发生OOM了。 6 7//op.inPreferredConfig = Bitmap.Config.ARGB_4444; // 默认是Bitmap.Config.ARGB_8888 8 9 10 11private Bitmap createBitmapFromByteData(byte[] data ,Options options){ 12 13 Bitmap bitmap = null; 14 if(options == null){ 15 bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 16 }else{ 17 bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options); 18 } 19 return bitmap; 20}
这样返回的bitmap就可以被显示出来了。