问题:最近开发使用webView的时候,发现webView操作很卡,发现是由于webView关闭硬件加速导致
分析:关闭webView硬件加速,是由于需要对webView截取bitmap
截取Bitmap代码如下:
// 获取webView的宽高,创建一个和webView宽高一直的Bitmap
int width = webView.getWidth();
int height = webView.getHeight();
// 创建一个空白的Bitmap, width 和 height 必须大于 0
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// 关闭硬件加速,否则截取webView快照时是空白的
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
// 将webView的截图绘制到bitmap
webView.draw(new Canvas(bitmap));
使用上面代码截取webView时,如果不关闭硬件加速,截取的bitmap是空白的
经过查阅资料发现在Android O(Android 8.0 api 26)及以上的Android系统提供了另外一个截取webView的方法,代码如下:
// 获取w