HarmonyOS 鸿蒙Next 进度条样式咨询
HarmonyOS 鸿蒙Next 进度条样式咨询
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-components-canvas-canvas-V5
不过基于ui样式的统一,这边建议还是使用官方提供的范式。
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
private centerX: number = 0
private centerY: number = 0
private radius: number = 0
angle: number = -90
start() {
this.context.clearRect(-this.radius, -this.radius, this.context.width, this.context.height)
this.context.beginPath()
this.context.moveTo(0, 0)
this.context.lineTo(0, -this.radius)
this.context.arc(0, 0, this.radius, -Math.PI / 2, Math.PI / 180 * this.angle)
this.context.lineTo(this.centerX * Math.cos(Math.PI / 180 * this.angle),
this.centerY * Math.sin(Math.PI / 180 * this.angle))
this.context.fill()
}
build() {
Column() {
Canvas(this.context).width(50).height(50).backgroundColor(Color.Pink)
.onReady(() => {
this.centerX = this.context.width / 2
this.centerY = this.context.height / 2
this.radius = this.context.width / 2
this.context.translate(this.centerX, this.centerY)
setInterval(() => {
if (this.angle <= 270) {
this.angle++
} else {
this.angle = -90
}
this.start()
}, 10)
})
}.justifyContent(FlexAlign.Center)
.height('100%')
.width('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 进度条样式咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next进度条样式多样,可通过Progress组件实现。Progress组件用于显示目标操作的当前进度,支持多种样式,如线性(Linear)、环形无刻度(Ring)、环形有刻度(ScaleRing)、圆形(Eclipse)和胶囊(Capsule)。
其中,线性进度条适合展示水平或垂直进度;环形无刻度进度条以环形方式展示进度,无具体刻度;环形有刻度进度条则带有刻度,可更精确地表示进度;圆形进度条以圆形方式展示,常用于表示完成度;胶囊样式进度条则在头尾两端呈现圆弧状,中段为矩形长条。
创建进度条时,可通过设置value、total和type等参数来定义初始进度值、进度总长度和进度条样式。此外,还可通过调用width、height、color、style等方法进一步自定义进度条的外观,如宽度、高度、颜色和样式等。
总之,HarmonyOS 鸿蒙Next提供了丰富的进度条样式,开发者可根据实际需求选择合适的样式并进行自定义。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。