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