android 如何压缩图片,我用Gallery加载时图片时有一些图片太大,导致内存溢出,想把这些图片压缩成一个缩略图,该怎么做?
不能只是缩小图片大小,而是要把体积降下来,几百K的图片压缩成几K或几百B
不能只是缩小图片大小,而是要把体积降下来,几百K的图片压缩成几K或几百B
解决方案 »
- android tabhost返回后如何进行刷新
- android平板电脑
- gridview 行加載事件是什麽?
- Android源码不同版本对应的交叉编译工具链怎么获取?自己去编译?对应编译器的各个组件(工具软件)要找什么样的版本呢?
- 在线等- -!ListView动态添加LinearLayout的问题
- 关于 Context为空的问题
- android listview长按报错
- 自定义BaseAdapter,动态输入item时,触发onclick里的事件
- NavigationView如何动态设置menu的icon小图标?
- OkHttp post后返回404的问题
- 如何在Service中写notification
- 怎样查看android模拟器的内存CPU使用情况
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自带库里中唯一可以缩放和压缩的图片方法.
BitmapFactory.Options options = new BitmapFactory.Options();options.inTempStorage = new byte[16*1024];Bitmap bitmapImage = BitmapFactory.decodeFile(path,opt);
谢谢你的方法,不过我在左右滑动图片数次之后它还是出错了,
10-27 06:49:59.373: ERROR/AndroidRuntime(4841): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
不过大概滑动了二三十次才报错.
if (bitmap.isRecycled()){
bitmap.recycle();
}
不信可以自己去测试