canvas绘制图片的时候使用的是最新的Canvas 2D接口进行绘制,按官方给的示例,多次绘制发现scale在真机上会叠加,开发者工具不会。
每次绘制前都重新设置了canvas的宽高,绘制完成之后也调用clearRect清空了。
const dpr = wx.getSystemInfoSync().pixelRatio
canvas.width = res[0].width * dpr
canvas.height = res[0].height * dpr
ctx.scale(dpr, dpr) // 第一次点击绘制放大正常,第二次点击会保留第一次放大的基础上再次放大,重复点击多次会一直放大下取,只在真机上会出现Adiord和iOS都是
// 目前解决办法是
// 通过setData来控制canvas是否出现在页面上,生成前让页面生成canvas,canvas画完之后把canvas移除掉。
android 6.0.1的手机有这个问题,但IOS、android 7.1.2没这个问题!估计需要读取android版本号,实现兼容。
问题解决了么? 只绘制一次还是有问题啊
我也遇到了这个问题,多次调用倍数相乘,一直没找到解决方法
if(this.data.flag==true){
ctx.scale(dpr, dpr)
this.setData({
flag:false
})
}
用一个变量控制,只让他调用一次