ringa_lee2017-04-17 16:58:44
image.compress()這個方法根本不會減少Bitmap的大小,這個實作不了圖片壓縮。所以你baos、isBm都佔用了少的記憶體空間。直接使用inSampleSize來壓縮還好
PHPz2017-04-17 16:58:44
按照你的寫法,一個2000*1400的照片的insamplesize會被設置為1,解碼時需要的內存是會飆升很高的
如果不是對清晰度有特別要求的話,沒有必要把圖片寬高設置成主流螢幕大小,targetsize可以設定為高的一半就可以顯示清楚了
另外,還可以即時動態監測可用記憶體來動態調整insamplesize
高洛峰2017-04-17 16:58:44
你這兩個方法既然都是接收一個Bitmap
的参数,那么在调用时,你肯定已经将图片读取到内存中了。造成内存飙升是肯定的。
如果要进行图片压缩,那么最好接受图片的存储位置,在读取的时候进行压缩,这里可以通过Options
這個類別來進行設置,然後進行保存。
在圖片壓縮的問題上,盡量不要將原圖加載進內存,如果已經創建了原圖的實例,那麼內存就很容易爆掉的。