1. 程式人生 > >Android中BitmapFactory.Options學習

Android中BitmapFactory.Options學習

首先BitmapFactory的作用是:Creates Bitmap objects from various sources, including files, streams, and byte-arrays。

BitmapFactory.Options用於解碼Bitmap時對各種引數的控制,詳細引數介紹如下:

1)inJustDecodeBounds 

如果將這個值置為true,那麼在解碼的時候將不會返回bitmap,只會返回這個bitmap的尺寸。這個屬性的目的是,如果你只想知道一個bitmap的尺寸,但又不想將其載入到記憶體時。這是一個非常有用的屬性。

2)inSampleSize

這個值是一個int,當它小於1的時候,將會被當做1處理,如果大於1,那麼就會按照比例(1 / inSampleSize)縮小bitmap的寬和高、

降低解析度,大於1時這個值將會被處置為2的倍數。

例如,width=100,height=100,inSampleSize=2,那麼就會將bitmap處理為,width=50,height=50,寬高降為1 / 2,畫素數降為1 / 4。

3)inDither

這個值和抖動解碼有關,預設值為false,表示不採用抖動解碼。

表示這個bitmap的畫素密度(對應的是DisplayMetrics中的densityDpi,不是density)。

4)inTargetDensity

表示要被畫出來時的目標畫素密度(對應的是DisplayMetrics中的densityDpi,不是density)。

5)inScreenDensity

表示實際裝置的畫素密度(對應的是DisplayMetrics中的densityDpi,不是density)。

6)inScaled

設定這個Bitmap是否可以被縮放,預設值是true,表示可以被縮放。

7)inPurgeableinInputShareable

這兩個值一般是一起使用,設定為true時,前者表示空間不夠是否可以被釋放,後者表示是否可以共享引用。這兩個值在Android5.0後被棄用。

8)inPreferQualityOverSpeed

這個值表示是否在解碼時圖片有更高的品質,僅用於JPEG格式。如果設定為true,則圖片會有更高的品質,但是會解碼速度會很慢。

9)outWidthoutHeight

表示這個Bitmap的寬和高,一般和inJustDecodeBounds一起使用來獲得Bitmap的寬高,但是不載入到記憶體。