HarmonyOS 环形渐变canvas实现方式

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

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

HarmonyOS
2024-12-25 08:35:10
浏览
收藏 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%')
  }
}

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

分享
微博
QQ
微信
回复
2024-12-25 10:08:34
相关问题
HarmonyOS 环形渐变如何实现
94浏览 • 1回复 待解决
HarmonyOS Canvas颜色是否支持径向渐变
274浏览 • 1回复 待解决
HarmonyOS Canvas设置渐变色没有效果
346浏览 • 1回复 待解决
HarmonyOS Canvas 实现动画
395浏览 • 1回复 待解决
HarmonyOS 如何实现滚动渐变效果?
601浏览 • 1回复 待解决
HarmonyOS 渐变遮罩效果如何实现
441浏览 • 1回复 待解决
HarmonyOS 字体怎么实现渐变
170浏览 • 1回复 待解决
HarmonyOS Canvas的动画实现
77浏览 • 1回复 待解决
如何实现顶部渐变遮罩效果
736浏览 • 1回复 待解决
组件如何实现渐变色?
2235浏览 • 1回复 待解决
如何实现渐变的圆角边框
2783浏览 • 1回复 待解决
DataPanel如何实现颜色的渐变
916浏览 • 1回复 待解决
HarmonyOS 如何实现文字渐变色效果
401浏览 • 1回复 待解决
canvas如何实现水印效果
1299浏览 • 1回复 待解决
如何实现组件边缘的颜色渐变
2306浏览 • 1回复 待解决
HarmonyOS 如何实现透明度的渐变效果
234浏览 • 1回复 待解决
HarmonyOS Tab颜色渐变宽度渐变
327浏览 • 1回复 待解决
HarmonyOS canvas如何实现画线跟手效果
211浏览 • 1回复 待解决
js获取canvas对象两种方式有啥不同?
7947浏览 • 1回复 待解决