(java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决)android中将网络图片转化为缩略图
[转]java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
最近在做电信的一个视频地图项目时,需要获取网络图片预览,用到图片缩略图技术,通过参考了很多同行的方法,本人写了以下获取网络图片缩略图的代码,如有不妥,望高手指正,谢谢。以下是实现方法:
?
?
获取缩略图关键代码
?
?
byte[] imageByte=getImageFromURL(urlPath[i].trim());
//以下是把图片转化为缩略图再加载
BitmapFactory.Options options = new BitmapFactory.Options();?
options.inJustDecodeBounds = true; ? ? ?//首先设置.inJustDecodeBounds为true
Bitmap bitmap=BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length, options); ? ?//这时获取到的bitmap是null的,尚未调用系统内存资源
options.inJustDecodeBounds = false; ? ? ? ?得到图片有宽和高的options对象后,设置.inJustDecodeBounds为false。
int be = (int)(options.outHeight / (float)200);?
?? ? ? ?if (be <= 0) ? be = 1;?
?? ? ? ?options.inSampleSize = be; ? ? ? ? ?//计算得到图片缩小倍数
bitmaps[i]=BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length,options); ? ? ? ? ? ? ? ? ? ? ? ? ?//获取真正的图片对象(缩略图)
?
?
?
?
?
?
以下是批量获取网络图片缩略图的详细代码:
?
?