HarmonyOS使用canvas如何使文字垂直居中

context.fillText(text,x,y)方法,如何确定y值,使文字能够垂直居中?

HarmonyOS
2024-08-09 16:05:45
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

示例如下:

// xxx.ets 
@Entry 
@Component 
struct CanvasExample { 
  private settings: RenderingContextSettings = new RenderingContextSettings(true) 
  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) 
  build() { 
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 
      Canvas(this.context) 
        .width('100%') 
        .height('100%') 
        .backgroundColor('#ffff00') 
        .onReady(() =>{ 
          this.context.fillStyle = '#0000ff' 
          this.context.font = '18vp' 
          this.context.fillStyle = Color.Black 
          this.context.textAlign = 'center' 
          this.context.textBaseline = 'middle' 
          let str = (-12.3456).toFixed(2) 
          let metrics = this.context.measureText(str) 
          this.context.fillStyle = Color.Green 
          //这里把文字显示的区域绘制出来 
          this.context.fillRect(10, (this.context.height - metrics.height)/2, metrics.width, metrics.height) 
          this.context.fillStyle = Color.Black 
          //这里把文字绘制出来 
          this.context.fillText(str,10+(metrics.width/2), (this.context.height)/2) 
        }) 
    } 
    .width('100%') 
    .height('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-08-09 19:16:41
相关问题
画布绘制文字垂直居中
264浏览 • 1回复 待解决
HarmonyOS 文字行高设定后文字居中
292浏览 • 1回复 待解决
Text文本不垂直居中,该怎么处理呢?
2650浏览 • 1回复 待解决
如何使用canvas绘制圆角矩形
427浏览 • 1回复 待解决
如何使用canvas添加水印
1247浏览 • 1回复 待解决
HarmonyOS svg、canvas使用详情
354浏览 • 1回复 待解决
HarmonyOS Canvas如何重置clip
184浏览 • 1回复 待解决
HarmonyOS如何使Text中的单词折行显示
392浏览 • 1回复 待解决
HarmonyOS RelativeContainer的居中问题
485浏览 • 1回复 待解决
canvas如何实现水印效果
861浏览 • 1回复 待解决
如何操作canvas重新绘制
975浏览 • 1回复 待解决