Android .png和.jpg图片用什么样的方式不会造成内存溢出 5C

Android .png和.jpg图片用什么样的方式不会造成内存溢出

7个回答

压缩图片,没有方式,只是文件大小问题

在源头上控制图片的大小 就是在服务器上控制图片大小 你获取到的图片就是处理过的 比较小的 还有就是自己拿到网络图片之后 感觉还是大的话 就自己做压缩吧

用glide就可以,它会自动压缩图片,不会造成内存浪费

自己压缩呗,自己控制图片大小的,如果不压缩,图片太大了什么格式都会内存溢出的

不是格式的问题,主要是内存太大导致的内存溢出,自己压缩图片,确保内存不溢出。
压缩方法:
/**
* 压缩图片(质量压缩)
*
* @param bitmap bitmap
*/
public File compressImage(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 100;
while (baos.toByteArray().length / 1024 > 500) { //循环判断如果压缩后图片是否大于500kb,大于继续压缩
baos.reset();//重置baos即清空baos
options -= 80;//每次都压缩80%
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中
// long length = baos.toByteArray().length;
}
String filename = TimeUtil.longToDate(System.currentTimeMillis());
File file = new File(cropIconDir, filename + ".png");
try {
FileOutputStream fos = new FileOutputStream(file);
try {
fos.write(baos.toByteArray());
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
recycleBitmap(bitmap);
return file;
}

    望采纳!

压缩图片,或者裁剪图片大小,jpg支持图片压缩,png不行,只能裁剪图片大小

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!