bitmap

标签: bitmap

Android bitmap介绍

Bitmap内存模型 1.在Android 2.2(API8)之前,当GC工作时,应用的线程会暂停工作,同步的GC会影响性能。而Android2.3之后,GC变成了并发的,意味着Bitmap没有引用的时候其占有的内存会很快被回收。 2.在Android 2.3.3(API10)之前,Bitmap的像素数据存放在Native内存,而Bitmap对象本身则存放在Dalvik Heap中。Native内存中的像素数据并不会以可预测的方式进行同步回收,有可能会导致内存升高甚至OOM。而在Android3.0之后,Bitmap的像素数据也被放在了Dalvik Heap中。 3.0之前需要手动调用Bitmap.recycle()回收,3.0后当没有引用会自动回收。 内存复用 Android3.0之后支持inBitmap内存复用, 避免了内存的回收及申请过程, 显然性能表现更佳 声明可被复用的Bitmap必须设置inMutable为true; Android4.4(API 19)之前只有格式为jpg、png,同等宽高(

阅读全文...

Android 图片压缩的两种方式

方案1: 降低图片质量 private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArray().length / 1024>100) { // 循环判断如果压缩后图片是否大于100kb,大于继续压缩 baos.reset(); // 重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 options -= 10; // 每次都减少10 } ByteArrayInputStream

阅读全文...