通常主题切换,整个界面都会重新绘制,会出现闪屏;动画放缩十分消耗内存,出现卡顿;如何让主题切换不闪屏?针对某个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、动画播放完毕释放并关闭根布局缓存
新闻热点
疑难解答