Android_BitmapFactory.Options詳解

Android中,BitmapFactory相信大家都很熟悉了,這個類裏面的所有方法都是用來解碼創建一個Bitmap,其中有一個重要的類是Options,此類用於解碼Bitmap時的各種參數控制,那這裏面的各種參數都是什麼含義呢?今天我們就來重點解讀幾個參數。


inJustDecodeBounds

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


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。


inPreferredConfig

這個值是設置色彩模式,默認值是ARGB_8888,在這個模式下,一個像素點佔用4bytes空間,一般對透明度不做要求的話,一般採用RGB_565模式,這個模式下一個像素點佔用2bytes。


inPremultiplied

這個值和透明度通道有關,默認值是true,如果設置爲true,則返回的bitmap的顏色通道上會預先附加上透明度通道。


inDither

這個值和抖動解碼有關,默認值爲false,表示不採用抖動解碼。如果想知道什麼是抖動解碼,請參看我另一篇文章:http://blog.csdn.net/haozipi/article/details/47185535


inDensity

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


inTargetDensity

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


inScreenDensity

表示實際設備的像素密度(對應的是DisplayMetrics中的densityDpi,不是density)。


inScaled

設置這個Bitmap是否可以被縮放,默認值是true,表示可以被縮放。


ps:inDensity,inTargetDensity,inScreenDensity三個值的具體關係請參看我的另一篇文章:http://blog.csdn.net/haozipi/article/details/47185917


inPurgeableinInputShareable

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


inPreferQualityOverSpeed

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


outWidthoutHeight

表示這個Bitmap的寬和高,一般和inJustDecodeBounds一起使用來獲得Bitmap的寬高,但是不加載到內存。

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