HarmonyOS 环形渐变canvas实现方式

如图所示组件,使用官方的Gauge组件无法隐藏下半部分白色区域,边缘无法为圆角;自行实现不知道如何绘制渐变圆弧,canvas不支持sweepRadiant;

HarmonyOS  环形渐变canvas实现方式  -鸿蒙开发者社区

HarmonyOS
2024-12-25 08:35:10
643浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

Canvas中可以使用arc绘制隐藏下半部分白色区域

边缘圆角this.context.lineCap = ‘round’,

渐变圆弧createLinearGradient

// xxx.ets
@Entry
@Component
struct Arc {
  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('#ffffff')
        .onReady(() =>{
          this.context.beginPath()

          this.context.lineWidth = 10
          let grad = this.context.createLinearGradient(50,0, 300,100)
          grad.addColorStop(0.0, '#ff0000')
          grad.addColorStop(0.2, '#ffff00')
          grad.addColorStop(0.5, '#00ff00')
          this.context.strokeStyle = grad
          this.context.lineCap = 'round'
          this.context.arc(100, 75, 50, 3.14, 0)
          this.context.stroke()
        })
    }
    .width('100%')
    .height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-canvasrenderingcontext2d-V5#arc

分享
微博
QQ
微信
回复
2024-12-25 10:08:34
相关问题
HarmonyOS 环形渐变如何实现
500浏览 • 1回复 待解决
HarmonyOS Canvas颜色是否支持径向渐变
770浏览 • 1回复 待解决
HarmonyOS Canvas设置渐变色没有效果
821浏览 • 1回复 待解决
HarmonyOS Canvas 实现动画
1161浏览 • 1回复 待解决
HarmonyOS 如何实现滚动渐变效果?
1067浏览 • 1回复 待解决
HarmonyOS Canvas的动画实现
524浏览 • 1回复 待解决
HarmonyOS 渐变遮罩效果如何实现
961浏览 • 1回复 待解决
HarmonyOS 字体怎么实现渐变
597浏览 • 1回复 待解决
组件如何实现渐变色?
2710浏览 • 1回复 待解决
如何实现渐变的圆角边框
3351浏览 • 1回复 待解决
DataPanel如何实现颜色的渐变
1401浏览 • 1回复 待解决
HarmonyOS 如何实现文字渐变色效果
1004浏览 • 1回复 待解决
如何实现顶部渐变遮罩效果
1148浏览 • 1回复 待解决
canvas如何实现水印效果
1815浏览 • 1回复 待解决
HarmonyOS Tab颜色渐变宽度渐变
874浏览 • 1回复 待解决
HarmonyOS canvas如何实现画线跟手效果
724浏览 • 1回复 待解决
js获取canvas对象两种方式有啥不同?
8667浏览 • 1回复 待解决
渐变动画效果如何实现
291浏览 • 0回复 待解决
如何实现组件边缘的颜色渐变
2869浏览 • 1回复 待解决