Harmonyos 鸿蒙Next圆形带圆点进度条如何实现
Harmonyos 鸿蒙Next圆形带圆点进度条如何实现
求助大佬们,请问鸿蒙有没有类似的这样圆形带圆点的进度条第三库参考?完全不知道怎么去实现
更多关于Harmonyos 鸿蒙Next圆形带圆点进度条如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
给你一个思路,如果还实现不了,我在抽时间帮你写写哈。
Stack(){
Image()//这里展示向内渐变的圆形图片做北京
Text('10%')//这里展示进度
Text('本月任务进度')
Progress//这里系统进度条,可以实现无圆点进度
Image('圆点图片')//重点来了,这里的图片是一个png,但只有正上方有一个白芯的圆点,然后根据进度计算角度把图片进行旋转,也就是Image().rotate(根据进度计算角度哈)
}
更多关于Harmonyos 鸿蒙Next圆形带圆点进度条如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
大佬,我试了一下,用stack,Progress和circle,然后根据百分百旋转,但是如果加个按钮,然后频繁点击,动画上就不是很连贯,会出现进度条增加,然后和圆点分开的情况,过快甚至会出现两个撞起来,然后时候动画属性貌似也不得行
@Entry
@Component
struct Page03 {
@State value: number = 70 //实际进度,单位%
@State valueAnim: number = 10 //动画进度,单位%
progressId: number = 0
aboutToAppear(): void {
this.progressId = setInterval(() => {
if (this.value > this.valueAnim) {
this.valueAnim += 1
} else if (this.value < this.valueAnim) {
this.valueAnim -= 1
}
}, 10)
}
aboutToDisappear(): void {
clearInterval(this.progressId)
}
build() {
Column() {
Button('设置为0%').onClick(() => {
this.value = 0
})
Button('设置为50%').onClick(() => {
this.value = 50
})
Button('设置为68%').onClick(() => {
this.value = 68
})
Button('设置为100%').onClick(() => {
this.value = 100
})
Stack() {
// Image() //这里展示向内渐变的圆形图片做北京
Text(`${this.valueAnim}%`) //这里展示进度
Text('本月任务进度').fontSize('15lpx').margin({ top: '100lpx' })
Progress({ value: this.valueAnim, total: 100, type: ProgressType.Ring })
.width('200lpx').color(Color.Orange)
.style({ strokeWidth: 5, shadow: false ,enableSmoothEffect:false}) //这里系统进度条,可以实现无圆点进度
Text().width('50lpx') //重点来了,这里的图片是一个png,但只有正上方有一个白芯的圆点,然后根据进度计算角度把图片进行旋转,也就是Image().rotate(根据进度计算角度哈)
Stack() {
Text()
.backgroundColor(Color.White)
.borderColor(Color.Orange)
.borderWidth(5)
.width('27lpx')
.height('27lpx')
.borderRadius('50lpx')
}.width('220lpx').height('220lpx').align(Alignment.Top).rotate({angle:this.valueAnim / 100 * 360})
}.width('300lpx').height('300lpx').backgroundColor(Color.Pink)
}
.height('100%')
.width('100%')
}
}
在鸿蒙系统中实现带圆点的圆形进度条,通常可以通过自定义组件(Custom Widget)或利用现有UI框架中的圆形进度条组件,并通过Canvas或相关API绘制圆点。具体步骤包括定义进度条控件、计算圆点位置并绘制。建议查阅鸿蒙开发文档中关于UI组件开发的部分,特别是Canvas绘图API的使用。如果项目允许,也可考虑集成第三方UI库,但需确保其支持鸿蒙系统。如果问题依旧没法解决请加我微信,我的微信是itying888。
更多关于Harmonyos 鸿蒙Next圆形带圆点进度条如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html