HarmonyOS Text组件如何设置字体描边?

对Text设置文字描边,而不是对整个控件的矩形区域设置外描边。比如说文字是黑色,文字的外描边是白色,就类似地图上的地名标注。我尝试了textShadow来设置,即使我设置的阴影颜色是白色,但是出来还是有黑色阴影,请问有没其他的设置方式呢?

阅读 440
1 个回答

目前没有文字描边的属性可供设置,可使用canvas绘制填充和描边重合达到想要的效果。示例如下:

@Entry
@Component
struct Index {
  //用来配置CanvasRenderingContext2D对象的参数,包括是否开启抗锯齿,true表明开启抗锯齿。
  private settings: RenderingContextSettings = new RenderingContextSettings(true)
  //用来创建CanvasRenderingContext2D对象,通过在canvas中调用CanvasRenderingContext2D对象来绘制。
  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)

  build() {
    Column() {
      Canvas(this.context)
        .width('100%')
        .height('100%')
        .onReady(() =>{
          // 描边文本
          this.context.font = '355px sans-serif';
          this.context.strokeStyle = "#ffea0acb";
          // 描边宽度
          this.context.lineWidth = 1
          this.context.strokeText("描边文本",10,300);

          this.context.fillStyle = "black";
          this.context.fillText("描边文本",10,300);

        })
    }
    .width('100%')
    .height('100%')
    .padding({left:20})
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进