0%

解决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();
          //资源回收

更深层优化方法,见: