使用setDrawingCacheEnabled(boolean flag)提升繪圖速度

View組件顯示的內容能夠經過cache機制保存爲bitmap, 使用到的api有api

    void  setDrawingCacheEnabled(boolean flag),ui

    Bitmap  getDrawingCache(boolean autoScale),spa

    void  buildDrawingCache(boolean autoScale),orm

    void  destroyDrawingCache()圖片

    咱們要獲取它的cache先要經過setDrawingCacheEnable方法把cache開啓,而後再調用getDrawingCache方法就可 以得到view的cache圖片了。buildDrawingCache方法能夠不用調用,由於調用getDrawingCache方法時,若果 cache沒有創建,系統會自動調用buildDrawingCache方法生成cache。若果要更新cache, 必需要調用destoryDrawingCache方法把舊的cache銷燬,才能創建新的。內存

當調用setDrawingCacheEnabled方法設置爲false, 系統也會自動把原來的cache銷燬。get

   ViewGroup在繪製子view時,而外提供了兩個方法it

   void setChildrenDrawingCacheEnabled(boolean enabled)map

   setChildrenDrawnWithCacheEnabled(boolean enabled)方法

   setChildrenDrawingCacheEnabled方法能夠使viewgroup裏全部的子view開啓cache, setChildrenDrawnWithCacheEnabled使在繪製子view時,若該子view開啓了cache, 則使用它的cache進行繪製,從而節省繪製時間。

   獲取cache一般會佔用必定的內存,因此一般不須要的時候有必要對其進行清理,經過destroyDrawingCache或setDrawingCacheEnabled(false)實現。

相關文章
相關標籤/搜索