Android: 縮放圖片文件引起的OOM異常

編寫:徐建祥([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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章