android中Webview内容生成长图问题

没劲睡觉 2017-06-22 11:20:50
最近项目中需要将webview中的内容生成长图,用于保存或者分享,安装网上的方法基本可以实现内容的长截图
网上的方法:
//获取Picture对象
Picture picture = wv_capture.capturePicture();
//得到图片的宽和高(没有reflect图片内容)
int width = picture.getWidth();
int height = picture.getHeight();
if (width > 0 && height > 0) {
//创建位图
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
//绘制(会调用native方法,完成图形绘制)
picture.draw(canvas);

}

但是我们的需求可能更糟糕,有时候webview中的内容特别长,导致生成的图片下面一部分会出现空白,网上找资料应该是画布Canvas有个最大高度和宽度,
canvas.getMaximumBitmapHeight()

猜想应该是如果生成的bitmap的高度大于这个值的话,那超过的部分就会显示空白的了,查阅了很多资料都不行。
请教大神这该怎么解决?
...全文
2408 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
没劲睡觉 2018-05-07
  • 打赏
  • 举报
回复
临时解决方案:将webview按等比缩放至高度小于canvas.getMaximumBitmapHeight()的最大值显示出来,再进行截图。 缺点:图片的宽度会因为缩放导致变窄。
winvx2017 2017-11-26
  • 打赏
  • 举报
回复
经历过后才明白有些事的语句
A_mnesia 2017-11-07
  • 打赏
  • 举报
回复
lz解决了吗?
没劲睡觉 2017-07-14
  • 打赏
  • 举报
回复
我自己先顶上去吧
没劲睡觉 2017-06-22
  • 打赏
  • 举报
回复
之前查看锤子便签和简书的生成长图是可以很长的到达50000像素的高度,我的只要高度超过canvas.getMaximumBitmapHeight()的最大值,之前测的是32766像素,下面的部分就是空白的了,不知道怎么实现的,,,求大神解答

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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