上述为微信小程序Canvas的内部接口,经过熟练使用Canvas,便可画出较为美观的前端页面。下面是使用微信小程序画图的一些例子。javascript
wxml中代码:前端
<canvas canvas-id="myCanvas" class="myCanvas" ></canvas>
js中onLoad()函数java
const ctx = wx.createCanvasContext('myCanvas')//建立Canvas ctx.setFillStyle('green')//选择填充颜色 ctx.fillRect(10, 10, 150, 75)//形状描述 ctx.draw()//绘制图像
路径的画法:canvas
const ctx = wx.createCanvasContext('myCanvas')//建立Canvas ctx.moveTo(10, 10)//初始点选择 ctx.lineTo(100, 10)//画线 ctx.lineTo(100, 100) ctx.fill()//填充形状 ctx.draw()
文字的画法:小程序
const ctx = wx.createCanvasContext('myCanvas') ctx.setFontSize(20) //文字大小 ctx.fillText('Hello', 20, 20) //文字后跟的参数为文字启示坐标 ctx.fillText('MINA', 100, 100) ctx.draw()
圆角矩形的画法微信小程序
const bot = wx.createCanvasContext('bottcan') bot.moveTo(0, 0) bot.lineTo(wid / 2 - 15, 0) bot.lineTo(wid / 2 + 15, 35) bot.lineTo(10, 35) bot.arc(0 + 10, 35 - 10, 10, Math.PI * 0.5, Math.PI)//勾画圆角矩形的线段 bot.setFillStyle('#FF9955') bot.fill() bot.setFillStyle('#414141') bot.setFontSize(20) bot.fillText('重填问卷', 50, 25)
在生成Canvas的时候,须要固定宽度和高度,其中高度比较好固定,可是宽度的固定就比较困难,由于不一样手机型号宽度不一样,所以须要得知本机可以使用宽度为多少。微信
<canvas canvas-id="myCanvas" class="myCanvas" style = "width:{{windowWidth}}px;height:35px" ></canvas>
var that = this; wx.getSystemInfo({ success: function (res) { console.log(res.windowWidth) //获取用户手机宽度 that.setData ({ windowWidth: res.windowWidth * 0.94 }) } }) var wid = this.data.windowWidth;
在微信小程序中,Canvas这种默认组件的层级为最高,所以在弹出确认与否的提示时,Canva会影响使用,用户没法点击确认或取消,只能点击Canvas按钮,所以需解决该问题。函数
解决方案this
在点击出现选择框时,将Canvas隐藏,而且生成一张与原始画布相同的图片放在该位置,从而达到下降Canvas层级的效果。3d
js代码:
//radaarImg为导出的图片 var that = this wx.canvasToTempFilePath({ width: that.data.windowWidth, height: 35, canvasId: 'myCanvas', success: function (res) { that.setData({ radarImg: res.tempFilePath }); } });
wxml代码:
<view wx:if = "{{!can1}}"> <canvas canvas-id="myCanvas" class="myCanvas" style = "width:{{windowWidth}}px;height:35px" ></canvas> </view> <image wx:else src="{{radarImg}}" style="width: {{windowWidth}}px; height:35px;" />
效果展现: