Android 8.0(Android O) 开启硬件加速 WebView 截取Bitmap

文章讲述了在开发中遇到的WebView截取Bitmap时出现的性能问题,由于关闭硬件加速导致操作卡顿。作者提供了两种解决方案,一种适用于Android8.0及以上版本,利用PixelCopyAPI可以在保持硬件加速的情况下截取WebView,另一种则是针对低版本Android系统,需要关闭硬件加速来正确截取WebView的快照。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:最近开发使用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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值