編寫:徐建祥([email protected])
日期:2010/12/06
網址:http://www.anymobile.org
傳輸文件,或者設置頭像,我們一般都會檢查原始圖片的大小,作縮放處理。
常用的Java版縮放圖片代碼:
常用的Android版縮放圖片代碼:
如果圖片非常大,在執行BitmapFactory.decodeStream的時候就會拋出OOM異常。
我們來看看系統應用MMS是如何處理的,SMS添加了多媒體附件後就作MMS處理了,當附加文件原圖超過300K,也會做個縮放處理,具體參考:com.android.mms.ui/.UriImage:
可以看出,MMS應用的方法是:先設置縮放選項,再讀取縮放的圖片數據到內存,規避了內存引起的OOM。
修改後的代碼:
OVER!