鸿蒙5.0开发进阶:JS组件-画布组件(CanvasRenderingContext2D对象)

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


CanvasRenderingContext2D对象

使用CanvasRenderingContext2D在canvas画布组件上进行绘制,绘制对象可以是矩形、文本。

示例:

<!-- xxx.hml -->
<canvas ref="canvas1" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
<input type="button" style="width: 180px; height: 60px;" value="fillStyle" onclick="handleClick" />
// xxx.js
export default {
  handleClick() {
    const el = this.$refs.canvas1;
    const ctx = el.getContext('2d');
    ctx.beginPath();
    ctx.arc(100, 75, 50, 0, 6.28);
    ctx.stroke();
  },
}

fillRect()

填充一个矩形。

参数:

参数类型描述
xnumber指定矩形左上角点的x坐标。
ynumber指定矩形左上角点的y坐标。
widthnumber指定矩形的宽度。
heightnumber指定矩形的高度。

示例:

ctx.fillRect(20, 20, 200, 150);

fillStyle

指定绘制的填充色。

参数:

参数类型描述
color<color>设置填充区域的颜色。

示例:

ctx.fillStyle = '#0000ff';
ctx.fillRect(20, 20, 150, 100);

strokeRect()

绘制具有边框的矩形,矩形内部不填充。

参数:

参数类型描述
xnumber指定矩形的左上角x坐标。
ynumber指定矩形的左上角y坐标。
widthnumber指定矩形的宽度。
heightnumber指定矩形的高度。

示例:

ctx.strokeRect(30, 30, 200, 150);

fillText()

绘制填充类文本。

参数:

参数类型描述
textstring需要绘制的文本内容。
xnumber需要绘制的文本的左下角x坐标。
ynumber需要绘制的文本的左下角y坐标。

示例:

ctx.font = '35px sans-serif';
ctx.fillText("Hello World!", 20, 60);

lineWidth

指定绘制线条的宽度值。

参数:

参数类型描述
lineWidthnumber设置绘制线条的宽度。

示例:

ctx.lineWidth = 5;
ctx.strokeRect(25, 25, 85, 105);

strokeStyle

设置描边的颜色。

参数:

参数类型描述
color<color>指定描边使用的颜色

示例:

ctx.lineWidth = 10;
ctx.strokeStyle = '#0000ff';
ctx.strokeRect(25, 25, 155, 105);

stroke()5+

进行边框绘制操作。

示例:

ctx.beginPath();              
ctx.lineWidth = '6';
ctx.strokeStyle = '#0000ff';
ctx.moveTo(15, 80); 
ctx.lineTo(280, 160);
ctx.stroke();

beginPath()5+

创建一个新的绘制路径。

示例:

ctx.beginPath();              
ctx.lineWidth = '6';
ctx.strokeStyle = '#0000ff';
ctx.moveTo(15, 80); 
ctx.lineTo(280, 160);
ctx.stroke();

moveTo()5+

路径从当前点移动到指定点。

参数:

参数类型描述
xnumber指定位置的x坐标。
ynumber指定位置的y坐标。

示例:

ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(280, 160);
ctx.stroke();

lineTo()5+

从当前点到指定点进行路径连接。

参数:

参数类型描述
xnumber指定位置的x坐标。
ynumber指定位置的y坐标。

示例:

ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(280, 160);
ctx.stroke();

closePath()5+

结束当前路径形成一个封闭路径。

示例:

ctx.beginPath();
ctx.moveTo(30, 30);
ctx.lineTo(110, 30);
ctx.lineTo(70, 90);
ctx.closePath();
ctx.stroke();

font

设置文本绘制中的字体样式。

参数:

参数类型描述
valuestring字体样式支持:sans-serif, serif, monospace,该属性默认值为30px HYQiHei-65S。

示例:

ctx.font = '30px sans-serif';
ctx.fillText("Hello World", 20, 60);

textAlign

设置文本绘制中的文本对齐方式。

参数:

参数类型描述
alignstring

可选值为:

- left(默认):文本左对齐;

- right:文本右对齐;

- center:文本居中对齐;

示例:

ctx.strokeStyle = '#0000ff';
ctx.moveTo(140, 10);
ctx.lineTo(140, 160);
ctx.stroke();

ctx.font = '18px sans-serif';    

// Show the different textAlign values
ctx.textAlign = 'left';      
ctx.fillText('textAlign=left', 140, 100);
ctx.textAlign = 'center';     
ctx.fillText('textAlign=center',140, 120);              
ctx.textAlign = 'right';      
ctx.fillText('textAlign=right',140, 140);

arc()5+

绘制弧线路径。

参数:

参数类型描述
xnumber弧线圆心的x坐标值。
ynumber弧线圆心的y坐标值。
radiusnumber弧线的圆半径。
startAnglenumber弧线的起始弧度。
endAnglenumber弧线的终止弧度。
anticlockwiseboolean是否逆时针绘制圆弧。

示例:

ctx.beginPath();
ctx.arc(100, 75, 50, 0, 6.28);
ctx.stroke();

rect()5+

创建矩形路径。

参数:

参数类型描述
xnumber指定矩形的左上角x坐标值。
ynumber指定矩形的左上角y坐标值。
widthnumber指定矩形的宽度。
heightnumber指定矩形的高度。

示例:

ctx.rect(20, 20, 100, 100); // Create a 100*100 rectangle at (20, 20)
ctx.stroke(); // Draw it

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值