84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
image.compress()这个方法根本不会减小Bitmap的大小,这个实现不了图片压缩。所以你baos、isBm都占用了少的内存空间。直接使用inSampleSize来压缩还好
按照你的写法,一个2000*1400的照片的insamplesize会被设置为1,解码时需要的内存是会飙升很高的如果不是对清晰度有特别要求的话,没有必要把图片宽高设置成主流屏幕大小,targetsize可以设定为高的一半就可以显示清楚了另外,还可以实时动态监测可用内存来动态调整insamplesize
你这两个方法既然都是接收一个Bitmap的参数,那么在调用时,你肯定已经将图片读取到内存中了。造成内存飙升是肯定的。如果要进行图片压缩,那么最好接受图片的存储位置,在读取的时候进行压缩,这里可以通过Options这个类来进行设置,然后进行保存。在图片压缩的问题上,尽量不要将原图加载进内存,如果已经创建了原图的实例,那么内存就很容易爆掉的。
Bitmap
Options
image.compress()这个方法根本不会减小Bitmap的大小,这个实现不了图片压缩。所以你baos、isBm都占用了少的内存空间。直接使用inSampleSize来压缩还好
按照你的写法,一个2000*1400的照片的insamplesize会被设置为1,解码时需要的内存是会飙升很高的
如果不是对清晰度有特别要求的话,没有必要把图片宽高设置成主流屏幕大小,targetsize可以设定为高的一半就可以显示清楚了
另外,还可以实时动态监测可用内存来动态调整insamplesize
你这两个方法既然都是接收一个
Bitmap
的参数,那么在调用时,你肯定已经将图片读取到内存中了。造成内存飙升是肯定的。如果要进行图片压缩,那么最好接受图片的存储位置,在读取的时候进行压缩,这里可以通过
Options
这个类来进行设置,然后进行保存。在图片压缩的问题上,尽量不要将原图加载进内存,如果已经创建了原图的实例,那么内存就很容易爆掉的。