收藏
回答

关于createLinearGradient在真机上的bug?

let value = 80;
//渲染一条渐变色的线
ctx.beginPath()
ctx.setLineWidth(10)
let grd = ctx.createLinearGradient(0, 0, 300, 300)
grd.addColorStop(0, "#FF5A09")
grd.addColorStop(1, '#FFA63F')
ctx.setStrokeStyle(grd)
let startAngle = -0.5
let endAngle = 1.5
endAngle = (1.5 - (0 - 0.5)) * (value / 100) + (0 - 0.5)
ctx.arc(150, 150, 150, startAngle * Math.PI, endAngle * Math.PI)
ctx.stroke()

//渲染一个小白点
ctx.beginPath()
ctx.setLineWidth(8)
//出现问题代码 start
ctx.setStrokeStyle('#ffffff')//此代码在电脑上生效,真机上不生效
//出现问题代码 end
//解决 start
let grd2 = ctx.createLinearGradient(x, 0, x, cHeight);
grd2.addColorStop(0, "#ffffff");
grd2.addColorStop(1, '#ffffff');
ctx.setStrokeStyle(grd2); //小白点颜色受到上面的线的渐变色影响了,渐变色这个api有bug,设置普通颜色顶替不了上面的渐变色,所以在创建一个纯白色的渐变色就OK了
//解决 end
let whitePointStartAngle = (1.5 - (0 - 0.5)) * ((value - 0.25) / 100) + (0 - 0.5);
ctx.arc(150, 150, 150, whitePointStartAngle * Math.PI, endAngle * Math.PI)
ctx.stroke()
回答关注问题邀请回答
收藏

2 个回答

  • 枫已搁浅
    枫已搁浅
    01-05

    我使用了这个渐变背景色后,有些ios机型,画出来生成的图片是白色的,有大佬知道问题吗,在线等待

    01-05
    有用
    回复
  • Riven.
    Riven.
    2022-06-21

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2022-06-21
    有用
    回复
登录 后发表内容