解决Gallery载入大图片导致OutOfMemoryError内存溢出问题

在使用Gallery控件时,如果载入的图片过多,过大,就很容易出现OutOfMemoryError异常,就是内存溢出。这是因为Android默认分配的内存只有8M,而载入的图片如果是JPG之类的压缩格式,在内存中展开时就会占用大量的空间,也就容易内存溢出。这时可以用下面的方法解决:


	      ImageView i = new ImageView(mContext);
	      BitmapFactory.Options options=new BitmapFactory.Options();
          options.inSampleSize = 10;
          //貌似这个options的功能是返回缩略图,10即表示长和宽为原来的1/10,即面积为原来的1/100
          //缩略图可以减少内存占用
	      Bitmap bm = BitmapFactory.decodeFile(lis.
	                            get(position).toString(),options);
	      i.setImageBitmap(bm);
	      bm.recycle();
	      //资源回收

更深层优化方法,见:

© 2010 – 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记