记录下最近遇到的一个比较诡异限行的处理方案

场景:
安卓Hybrid app + Webview中加载的canvas + 复杂图形绘制 = 偶显canvas元素黑闪(黑屏)

也就是,在绘制canvas内容的时候,其他的DOM元素都是正常显示,唯独canvas元素会出现黑闪(黑屏)现象。

本来都已经想放弃Hybird转向原生app开发了,直到找到这篇文章。文章中介绍,部分版本的安卓系统不支持webview的canvas硬件加速,所以在很多情况下看到动画偶现黑屏,只要安卓的webview增加下面这行代码即可解决。

webView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

试了一下,确实可以,不过也会导致整体的速度变慢,这个速度的快慢程度取决于安卓设备的计算能力。所以在安卓设备上要想达到统一的效果是不太可能了,只能视实际情况而定,可以接受就用吧~