微信小程序 canvas 文字居中

drawCanvas: function(ctx) {
//...


// 昵称
ctx.setFontSize(16) //字体大小
ctx.setFillStyle('#fff') //字体颜色
ctx.textAlign="center"; //文字居中
ctx.fillText(this.data.info.userName, 187, 76)

  //...

},

转载于:https://www.cnblogs.com/cynthia-wuqian/p/10286466.html

可以使用CanvasContext中的`arc()`和`fillText()`方法来实现倒计时的效果。具体实现步骤如下: 1. 首先获取到CanvasContext的实例: ```javascript const ctx = wx.createCanvasContext('myCanvas'); ``` 2. 然后通过`arc()`方法画出一个圆形的进度条: ```javascript ctx.beginPath(); ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise); ctx.stroke(); ``` 其中,`x`和`y`是圆心的坐标,`radius`是圆的半径,`startAngle`和`endAngle`是圆弧的起始角度和结束角度,`anticlockwise`表示是否按逆时针方向绘制。 3. 接着,使用`fillText()`方法在圆形中心位置显示倒计时的数字: ```javascript ctx.font = 'bold 24px Arial'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText(time, x, y); ``` 其中,`font`设置字体样式,`textAlign`设置文字水平居中,`textBaseline`设置文字垂直居中,`fillText()`方法的第一个参数是要显示的文本,第二个参数是文本的x轴坐标,第三个参数是文本的y轴坐标。 4. 最后,通过定时器来更新倒计时的时间和进度条的显示,实现倒计时效果。 ```javascript setInterval(() => { //更新倒计时时间 time--; //重新绘制圆形进度条和倒计时数字 drawProgress(time); }, 1000); ``` 完整的实现代码示例: ```javascript const ctx = wx.createCanvasContext('myCanvas'); const x = 50; //圆心x轴坐标 const y = 50; //圆心y轴坐标 const radius = 40; //圆的半径 let time = 60; //倒计时时间 function drawProgress(time) { //清空画布 ctx.clearRect(0, 0, 100, 100); //绘制底部圆形 ctx.beginPath(); ctx.arc(x, y, radius, 0, 2 * Math.PI); ctx.strokeStyle = '#ddd'; ctx.stroke(); //绘制进度条 const endAngle = (2 * Math.PI) * (60 - time) / 60 - 0.5 * Math.PI; ctx.beginPath(); ctx.arc(x, y, radius, -0.5 * Math.PI, endAngle); ctx.strokeStyle = '#f00'; ctx.stroke(); //绘制倒计时数字 ctx.font = 'bold 24px Arial'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText(time, x, y); } setInterval(() => { time--; drawProgress(time); }, 1000); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值