问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 Bug context.setFillStyle 客户端 6.7.3 2.3.1
- 当前 Bug 的表现(可附上截图)
绘制圆角矩形头像在安卓机上大概率绘制不出, iOS 和开发工具都是正常的
- 预期表现
预计表现如图所示:
- 提供一个最简复现 Demo
export function drawRoundRect (ctx, x, y, w, h, r, url) {
ctx.save()
ctx.beginPath()
ctx.setFillStyle('transparent')
ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)
ctx.moveTo(x + r, y)
ctx.lineTo(x + w - r, y)
ctx.lineTo(x + w, y + r)
ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)
ctx.lineTo(x + w, y + h - r)
ctx.lineTo(x + w - r, y + h)
ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)
ctx.lineTo(x + r, y + h)
ctx.lineTo(x, y + h - r)
ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)
ctx.lineTo(x, y + r)
ctx.lineTo(x + r, y)
ctx.fill()
ctx.closePath()
ctx.clip()
ctx.drawImage(url, x, y, w, h)
ctx.restore()
return ctx
}
后检测出问题是:ctx.setFillStyle('transparent')
这行代码导致安卓机上大概率绘制不出圆角矩形头像。注释掉就正常了。
该行代码目的:因为边缘描边存在锯齿,最好指定使用 transparent 填充
想请问下具体是什么原因
微信小程序开发问题解答
微信小程序开发者回答:
你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
本文网址:http://www.91bianli.com/kaifazhinan/78863.html