<ex-canvas>
<ex-canvas>画布组件,可用于绘制一些自定义图形,如:线段、矩形、圆形、椭圆、图片、文本等,从而实现复杂图形的展示。
属性
Canvas 组件自身相关的属性均是以方法调用的形式来进行设置的,详见下面示例部分
样式
- 通用样式,可参考样式介绍
事件
lineWidth
备注:设置stroke的线粗细
参数:@param(widthValue) 粗细值,支持px,hm 单位, 如果不写单位就是dp
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
widthValue | Number|String | stroke的线粗细 | widthValue:5 |
lineColor
备注:设置stroke的颜色
参数:@param(colorHex) 颜色16进制
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
colorHex | String | stroke的颜色 | colorHex:#FF0000 |
lineCap
备注:设置线头样式
参数:@param(value) 0:LineCapButt, , 1:LineCapRound 2:LineCapSquare
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
value | Number | 线头样式 | value:0 |
lineJoin
备注:设置折线折点样式
参数:@param(value) 0:LineJoinMiter, , 1:LineJoinRound 2:LineJoinBevel
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
value | Number | 折线折点样式 | value:0 |
drawLine
备注:根据入参,在起始点与终点之间画一条线段
参数:@param(fraomX, fromY, toX, toY)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
fromX | Number|String | 起点的x值,支持px,hm 单位, 如果不写单位就是dp | fromX:100 |
fromY | Number|String | 起点的y值,支持px,hm 单位, 如果不写单位就是dp | fromY:170 |
toX | Number|String | 终点的x值,支持px,hm 单位, 如果不写单位就是dp | toX:100 |
toY | Number|String | 终点的y值,支持px,hm 单位, 如果不写单位就是dp | toY:490 |
strokeRect
备注:画矩形
参数:@param(x, y, w, h)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 矩形左上角坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:20 |
y | Number|String | 矩形左上角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:20 |
w | Number|String | 矩形宽,支持px,hm 单位, 如果不写单位就是dp | w:50 |
h | Number|String | 矩形高,支持px,hm 单位, 如果不写单位就是dp | h:50 |
strokeEllipse
备注:画椭圆
参数:@param(x, y, trailX, trailY)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 椭圆所在矩形左上角坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:100 |
y | Number|String | 椭圆所在矩形左上角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:400 |
trailX | Number|String | 椭圆所在矩形右下角坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | trailX:300 |
trailY | Number|String | 椭圆所在矩形右下角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | trailY:500 |
strokeCircle
备注:画圆形
参数:@param(x, y, radius)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 圆心坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:200 |
y | Number|String | 圆心坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:300 |
radius | Number|String | 半径 , 支持px,hm 单位, 如果不写单位就是dp | radius:20 |
arc
备注:画弧形
参数:@param(x, y, radius, startAngle, endAngle, clockwise)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 圆心坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:200 |
y | Number|String | 圆心坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:300 |
radius | Number|String | 半径 , 支持px,hm 单位, 如果不写单位就是dp | radius:20 |
startAngle | Number | 起始弧度 | startAngle:Math.PI / 4 |
endAngle | Number | 结束弧度 | endAngle:Math.PI / 5 |
clockwise | Boolean | ture 顺时针 , false 逆时针 | clockwise:true |
fillColor
备注:设置填充颜色
参数:@param(colorHex)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
colorHex | String | stroke的颜色 | colorHex:#FF0000 |
fillRect
备注:填充矩形
参数:@param(x, y , w, h)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 矩形左上角坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:80 |
y | Number|String | 矩形左上角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:300 |
w | Number|String | 矩形宽,支持px,hm 单位, 如果不写单位就是dp | w:30 |
h | Number|String | 矩形高,支持px,hm 单位, 如果不写单位就是dp | h:30 |
fillEllipse
备注:填充椭圆
参数:@param(x, y , trailX, trailY)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 椭圆所在矩形左上角坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:100 |
y | Number|String | 椭圆所在矩形左上角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:600 |
trailX | Number|String | 椭圆所在矩形右下角坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | trailX:300 |
trailY | Number|String | 椭圆所在矩形右下角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | trailY:700 |
fillCircle
备注:填充圆形
参数:@param(x, y , raduis)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
x | Number|String | 圆心坐标点的x值,支持px,hm 单位, 如果不写单位就是dp | x:100 |
y | Number|String | 圆心坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:300 |
raduis | Number|String | 半径 , 支持px,hm 单位, 如果不写单位就是dp | raduis:20 |
fontSize
备注:设置绘制文本字号
参数:@param(size)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
size | Number | 字号大小 | size:20 |
textColor
备注:设置绘制文本字色
参数:@param(colorHex)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
colorHex | String | stroke的颜色 | colorHex:#FF0000 |
fillText
备注:绘制文本
参数:@param(text, x, y, maxWidth)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
text | String | 文本 | text:Tenon |
x | Number|String | 文本左上角坐标x值 , 支持px,hm 单位, 如果不写单位就是dp | x:100 |
y | Number|String | 文本左上角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:100 |
maxWidth | Number|String | 可选。允许的最大文本宽度 | maxWidth:100 |
drawImage
备注:绘制图片
参数:@param(src, x, y, width, height)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
src | String | 图片资源链接,远程url或本地图片名 | src:https://xxx.png |
x | Number|String | 图片左上角坐标x值 , 支持px,hm 单位, 如果不写单位就是dp | x:100 |
y | Number|String | 图片左上角坐标点的y值,支持px,hm 单位, 如果不写单位就是dp | y:100 |
width | Number|String | 图片宽 ,支持px,hm 单位, 如果不写单位就是dp | width:100 |
height | Number|String | 图片高 ,支持px,hm 单位, 如果不写单位就是dp | height:100 |
示例
Tenon Vue
// entry.js
import Tenon from '@hummer/tenon-vue';
import app from './app.vue';
import ExCanvas from '@hummer/vue-plugin-canvas';
Tenon.register(ExCanvas);
Tenon.render(app);
<!-- App.vue -->
<template>
<ex-canvas class="canvas" ref="canvas"></ex-canvas>
</template>
<style lang="less" scoped>
.canvas{
width: 750hm;
height: 1500hm;
overflow: hidden;
}
</style>
<script>
export default{
mounted() {
this.drawCanvas(parseFloat(Hummer.env.deviceWidth), parseFloat(Hummer.env.deviceHeight),this.$refs.canvas)
},
methods: {
drawCanvas(width, height,canvas) {
this.drawCircle(width, height, canvas)
},
drawCircle(width, height, canvas) {
canvas.fillCircle('200px', '300px', '50px')
canvas.strokeCircle(200, 300, 20)
canvas.arc(300, 300, 20, Math.PI / 4, Math.PI / 5, false)
canvas.strokeEllipse(100, 400, 300, 500)
canvas.fillEllipse(100, 600, 300, 700)
}
}
}
</script>
更多用法,可参考Tenon Vue 官方示例。
Tenon React
支持中