android 如何压缩图片,我用Gallery加载时图片时有一些图片太大,导致内存溢出,想把这些图片压缩成一个缩略图,该怎么做?
不能只是缩小图片大小,而是要把体积降下来,几百K的图片压缩成几K或几百B 

解决方案 »

  1.   

    Bitmap如何保存成为一个bmp文件
      

  2.   

    压缩图片质量:  
    bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);   
    其中的quality为0~100, 可以压缩图片质量, 不过对于大图必须对图片resize 这个是等比例缩放:
    bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);这个是截取图片某部分:
    bitmap = Bitmap.createBitmap(bitmap, x, y, width, height);这几个方法都是针对Bitmap的, 不过鉴于Bitmap可以从file中读取, 也可以写入file. 这是我知道Android自带库里中唯一可以缩放和压缩的图片方法.
      

  3.   

    可以对bitmap用距阵的方式缩小,很简单的,看看就明白了。
      

  4.   

    内存溢出,你这么处理就可以。用完及时回收
    BitmapFactory.Options options = new BitmapFactory.Options();options.inTempStorage = new byte[16*1024];Bitmap bitmapImage = BitmapFactory.decodeFile(path,opt); 
      

  5.   


    谢谢你的方法,不过我在左右滑动图片数次之后它还是出错了,
    10-27 06:49:59.373: ERROR/AndroidRuntime(4841): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
    不过大概滑动了二三十次才报错.
      

  6.   

    你有的Bitmap对象没有释放吧?
    if (bitmap.isRecycled()){
       bitmap.recycle();
    }
      

  7.   

    4楼的方法不行,对付小图片还可以,遇到那些6、7mb以上的图片就OOM 了。。
    不信可以自己去测试