安卓webview获取快照bitmap是白屏的

不二情的Pioneer 2015-11-26 06:33:52
在网上看到两种实现webview获取快照的方法,
一个是Bitmap.createBitmap(webviewWidth, webviewHeight, Config.ARGB_8888),
还有一个是Bitmap.createBitmap(webView.getDrawingCache()),
我试过了2个方法都不管用,有的网页可以获取正常图片,大多数是白屏的,可能原因是因为开了硬件加速,在我关闭硬件加速后获取快照都是正常的,但是有的机子关了硬件加速html页面加载不出来,这个应该怎么解决,有人遇到过么?
...全文
428 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 jklwan 的回复:
[quote=引用 5 楼 ts2561762 的回复:] http://api.egret-labs.org/games/www/channel.php/game_18303_363?userId=322457&userName=哈哈哈&sign=fb607188a8d7fc89a3be42b4bee02c2e
对于html5 canvas的网页用这些方式是无法截图的,只能用系统方式,不过需要权限。 参考http://blog.csdn.net/woshinia/article/details/11520403[/quote] 是说需要手机有ROOT权限才能截图?那我怎么保证我的用户的手机都有ROOT权限呢?这样好像不行吧...
jklwan 2015-11-27
  • 打赏
  • 举报
回复
引用 5 楼 ts2561762 的回复:
http://api.egret-labs.org/games/www/channel.php/game_18303_363?userId=322457&userName=哈哈哈&sign=fb607188a8d7fc89a3be42b4bee02c2e
对于html5 canvas的网页用这些方式是无法截图的,只能用系统方式,不过需要权限。 参考http://blog.csdn.net/woshinia/article/details/11520403
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
[quote=引用 2 楼 ts2561762 的回复:] 谢谢你的回复,但是你这种方法用过了,没有效果,截出来的是空白的,还有另外一种canvas的方法也是一样的,我用的就是腾讯X5的webview,因为我的webview加载的是html5游戏,我试过一般的网页的可以正常截图,html5的截出来是黑的
能否把你的网址发一下我测试一下[/quote] http://api.egret-labs.org/games/www/channel.php/game_18303_363?userId=322457&userName=哈哈哈&sign=fb607188a8d7fc89a3be42b4bee02c2e
  • 打赏
  • 举报
回复
http://api.egret-labs.org/games/www/channel.php/game_18303_363?userId=322457&userName=哈哈哈&sign=fb607188a8d7fc89a3be42b4bee02c2e
jklwan 2015-11-27
  • 打赏
  • 举报
回复
引用 2 楼 ts2561762 的回复:
谢谢你的回复,但是你这种方法用过了,没有效果,截出来的是空白的,还有另外一种canvas的方法也是一样的,我用的就是腾讯X5的webview,因为我的webview加载的是html5游戏,我试过一般的网页的可以正常截图,html5的截出来是黑的
能否把你的网址发一下我测试一下
  • 打赏
  • 举报
回复
谢谢你的回复,但是你这种方法用过了,没有效果,截出来的是空白的,还有另外一种canvas的方法也是一样的,我用的就是腾讯X5的webview,因为我的webview加载的是html5游戏,我试过一般的网页的可以正常截图,html5的截出来是黑的
jklwan 2015-11-27
  • 打赏
  • 举报
回复

            mWebView.setDrawingCacheEnabled(true);
            mWebView.buildDrawingCache();
            Bitmap b1 = mWebView.getDrawingCache();
            mWebView.destroyDrawingCache();
一般用这种方式,至于你说的开硬件加速的问题,4.4以上内核换了不建议开启硬件加速。你可以看看腾讯的X5内核,是和微信浏览器内核一样的,不用开启硬件加速,用这种方式就可以获取截图。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧