1.需求
生成海需要画出一个中空带边框的的tag,如下图。众所周知,微信小程序里的canvas画图都是需要自己一点点画出来,不像html有htmlToCanvas,直接写HTML就可以转成canvas.
2.实现
首先要实现圆角边框,再把字体填充进去,我在网上找到一个方法,直接拿过来改了一下,代码如下:
//画圆角边框
roundRect(ctx, x, y, w, h, r, fillColor, strokeColor) {
// 画圆角 ctx、x起点、y起点、w宽度、y高度、r圆角半径、fillColor填充颜色、strokeColor边框颜色
// 开始绘制
ctx.beginPath()
// 绘制左上角圆弧 Math.PI = 180度
// 圆心x起点、圆心y起点、半径、以3点钟方向顺时针旋转后确认的起始弧度、以3点钟方向顺时针旋转后确认的终止弧度
ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)
// 绘制border-top
// 移动起点位置 x终点、y终点
ctx.moveTo(x + r, y)
// 画一条线 x终点、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)
// 绘制border-right
ctx.lineTo(x