HarmonyOS 环形渐变canvas实现方式

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

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

HarmonyOS
1天前
浏览
收藏 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
微信
回复
1天前
相关问题
HarmonyOS Canvas颜色是否支持径向渐变
26浏览 • 1回复 待解决
HarmonyOS Canvas设置渐变色没有效果
71浏览 • 1回复 待解决
HarmonyOS Canvas 实现动画
64浏览 • 1回复 待解决
HarmonyOS 如何实现滚动渐变效果?
365浏览 • 1回复 待解决
HarmonyOS 渐变遮罩效果如何实现
244浏览 • 1回复 待解决
HarmonyOS 字体怎么实现渐变
24浏览 • 1回复 待解决
HarmonyOS 关于柱状图,环形图的绘制
34浏览 • 1回复 待解决
组件如何实现渐变色?
2088浏览 • 1回复 待解决
DataPanel如何实现颜色的渐变
580浏览 • 1回复 待解决
如何实现渐变的圆角边框
2566浏览 • 1回复 待解决
如何实现顶部渐变遮罩效果
533浏览 • 1回复 待解决
HarmonyOS 如何实现文字渐变色效果
67浏览 • 1回复 待解决
canvas如何实现水印效果
975浏览 • 1回复 待解决
如何实现组件边缘的颜色渐变
2007浏览 • 1回复 待解决
js获取canvas对象两种方式有啥不同?
7602浏览 • 1回复 待解决
HarmonyOS canvas如何实现画线跟手效果
74浏览 • 1回复 待解决
HarmonyOS Tab颜色渐变宽度渐变
37浏览 • 1回复 待解决
HarmonyOS 如何实现透明度的渐变效果
36浏览 • 1回复 待解决