通常主題切換,整個界面都會重新繪制,會出現閃屏;動畫放縮十分消耗內存,出現卡頓;如何讓主題切換不閃屏?針對某個view的放縮不用多次繪制?
view有提供的方法中提供了這樣的功能(步驟),開啟view緩存,創建緩存,獲取緩存,釋放緩存,關閉緩存;
1、開啟緩存功能
view.setDrawingCacheEnable(true);
2、創建緩存
view.buildDrawingCache(true);
3、獲取緩存
Bitmap btp=view.getDrawingCache();——獲取緩存圖片之后進行放縮,透明度變化(根布局為全屏時,可用于截屏)
4、釋放緩存
view.destoryDrawingCache();
5、關閉緩存
view.setDrawingCacheEnable(false);
這樣解決切換主題切換閃屏:(用于夜晚模式和白天模式閱讀功能的柔和切換,視覺效果參考知乎app)
1、在切換主題前獲取開啟根布局緩存并獲取緩存圖片,
2、讓該圖片覆蓋全屏開啟透明度動畫(1-0),
3、在動畫開始時切換主題,(這樣屏幕只會顯示圖片的漸變動畫)
4、動畫播放完畢釋放并關閉根布局緩存
新聞熱點
疑難解答