2018.2.28、android-Bitmap學習筆記

Traning發表於2018-02-28

1、recycle

①、回收java記憶體的物件和native記憶體物件,②、當bitmap呼叫recycle方法後,該bitmap就會被標記為“dead”狀態,再次呼叫getPixels()或setPixels()方法時將會丟擲異常。③、所以只有在你確定沒有進一步使用點陣圖 的時候再呼叫它。

2、LruCache<K, V>

大小有限制具有強引用的快取。底層封裝了LinkedHashMap<K, V>,鍵和值都不能為空。

其中包含了get 和put的方法,其核心的方法時通過trimToSize() (刪除最大的條目,直到剩餘的條目總數達到或低於所請求的大小。最久使用最少的條目將被刪除)

entryRemoved(boolean evicted, K key, V oldValue, V newValue) 回撥給子類的移除和新增的值。

3、計算insamplesize

根據圖片的寬高計算出合適得到比例

4、縮圖

options.inJustDecodeBounds 如果設定為true,解碼器將返回null(沒有點陣圖),但是out…欄位仍然設定,允許呼叫者查詢點陣圖,而不必為其畫素分配記憶體。 Bitmap.Config inPreferredConfig = Bitmap.Config.ARGB_8888 每個畫素佔4byte,每個顏色通道佔8個精度256; RGB_565:每個畫素佔2byte 當使用不透明的點陣圖時,這個配置可能是有用的。 不需要高顏色的保真度。

5、三級快取

1、網路快取:速度慢、消耗流量 2、本地快取: 3、記憶體快取:速度快