1. 程式人生 > >Android實際開發中的bug總結與解決方法(三)

Android實際開發中的bug總結與解決方法(三)

使用BitmapFactory.Options設定inSampleSize就可以縮小圖片。屬性值inSampleSize表示縮圖大小為原始圖片大小的幾分之一。如果知道圖片的畫素過大,就可以對其進行縮小。

那麼如何才知道圖片過大呢?

方法是:使用BitmapFactory.Options設定inJustDecodeBounds為true後,再使用decodeFile()等方法,並不會真正的分配空間,即解碼出來的Bitmap為null,但是可計算出原始圖片的寬度和高度,即options.outWidth和 options.outHeight。通過這兩個值,就可以知道圖片是否過大了。在實際專案中,先獲取圖片真實的寬度和高度,然後判斷是否需要跑縮小。如果不需要縮小,設定inSampleSize的值為 1。如果需要縮小,則動態計算並設定inSampleSize的值,對圖片進行縮小。需要注意的是,在下次使用BitmapFactory的 decodeFile()等方法例項化Bitmap物件前,別忘記將opts.inJustDecodeBound設定回false。否則獲取的 bitmap物件還是null。