使用canvas渲染文本时,如何基于文本变化,正确绘制出对应的内容?

使用canvas渲染文本时,如何基于文本变化,正确绘制出对应的内容?

HarmonyOS
2024-05-06 23:08:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

content值的变化会同时刷新build的ui页面,但是不会重调this.context.fillText这个方法,需要监听并重新调用这个方法,同时需要清理画布内容;示例如下:

@Prop @Watch(‘contentUpdate’)content: string = “” 
 
contentUpdate() { 
this.context.clearRect(0, 0, 200, 200) // 清理画布内容 
this.context.fillText(this.content, 50, 50) // 重新填充 
} 
 
build() { 
Column() { 
Canvas(this.context) 
.width(‘100%’) 
.height(‘25%’) 
.backgroundColor(’#F5DC62’) 
.onReady(() => { 
//可以在这里绘制内容。 
this.context.font = ‘55px sans-serif’ 
this.context.fillText(this.content, 50, 50) 
console.error(“aaa — content=” + this.content) 
}) 
Text(this.content) 
.textAlign(TextAlign.Center)// .backgroundColor(‘gray’) 
.width(‘100%’) 
.height(‘50%’) 
.fontSize(60) 
} 
.borderColor(’#31525B’) 
.borderWidth(12) 
.width(‘100%’) 
.height(‘100%’) 
}
分享
微博
QQ
微信
回复
2024-05-07 15:54:11
相关问题
如何取消订阅输入法文本内容变化
420浏览 • 1回复 待解决
Canvas绘制内容如何动态更新
1622浏览 • 1回复 待解决
基于measure实现文本测量
717浏览 • 1回复 待解决
HarmonyOS 富文本渲染问题
239浏览 • 1回复 待解决
如何实现文本内容竖向布局
545浏览 • 1回复 待解决
HarmonyOS如何测量文本内容长度?
122浏览 • 0回复 待解决
webview 如何显示纯文本html内容
2040浏览 • 1回复 待解决
如何使用canvas绘制圆角矩形
540浏览 • 1回复 待解决
如何清空文本输入框内容
783浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
1016浏览 • 1回复 待解决
Text文本过长如何实现上下滚动?
629浏览 • 1回复 待解决
如何操作canvas重新绘制
1095浏览 • 1回复 待解决