ArkTS Gauge组件的用法(附带实例)
Gauge 是数据量规图表组件,用于将数据展示为环形图表。

图 1 Gauge组件的默认样式示例效果

图 2 Gauge 组件的示例效果(属性运用)
Gauge默认样式
示例代码如下:
// 仪表盘组件:value 当前值,min 最小值,max 最大值
Gauge({ value: 50, min: 1, max: 100 }) {
// 垂直排列的列,用于放置仪表盘内的文字
Column() {
// 主数值文本
Text('50')
.fontWeight(FontWeight.Medium) // 字体粗细:中等
.width('62%') // 宽度占父容器 62%
.fontColor('#ff182431') // 字体颜色:深灰色
.maxFontSize('60.0vp') // 最大字体大小 60vp
.minFontSize('30.0vp') // 最小字体大小 30vp
.textAlign(TextAlign.Center) // 文字水平居中
.margin({ top: '35%' }) // 顶部外边距占父容器 35%
.textOverflow({ overflow: TextOverflow.Ellipsis }) // 超出部分省略号显示
.maxLines(1) // 最多显示一行
// 辅助文本
Text('辅助文本')
.maxFontSize('16.0fp') // 最大字体大小 16fp
.minFontSize('10.0vp') // 最小字体大小 10vp
.fontColor($r('sys.color.ohos_id_color_text_secondary')) // 使用系统次级文本颜色
.fontWeight(FontWeight.Regular) // 字体粗细:常规
.width('67.4%') // 宽度占父容器 67.4%
.height('9.5%') // 高度占父容器 9.5%
.textAlign(TextAlign.Center) // 文字水平居中
}
}
Gauge 组件的默认样式示例效果如下图所示:
图 1 Gauge组件的默认样式示例效果
Gauge属性配置
示例代码如下:
// 自定义 Builder:用于 Gauge 的 description 插槽
@Builder descriptionBuilderImage() {
Image($r('sys.media.ohos_ic_public_clock')) // 引用系统时钟图标
.width(72)
.height(72)
}
// 第一个 ListItem:标题行
ListItem() {
Row() {
Text('属性配置')
.fontSize(20)
.fontWeight(800) // 800 对应 FontWeight.Bold
}
}
// 第二个 ListItem:包含 Gauge 仪表盘
ListItem() {
/**
* value:量规图当前数据值,即指针指向的位置
* min :当前数据段最小值
* max :当前数据段最大值
*/
Gauge({ value: 50, min: 1, max: 100 }) {
Column() {
Text('50')
.fontWeight(FontWeight.Medium)
.width('62%')
.fontColor('#ff182431')
.maxFontSize('60.0vp')
.minFontSize('30.0vp')
.textAlign(TextAlign.Center)
.margin({ top: '35%' })
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1)
}
.width('100%')
.height('100%')
}
.startAngle(210) // 设置起始角度,时钟 0 点为 0°,顺时针为正
.endAngle(150) // 设置终止角度;起始与终止角度差过小会导致绘制异常
// 分段渐变色:每段颜色用 LinearGradient 表示,数字代表权重/占比
.colors([
[new LinearGradient([{ color: '#deb6fb', offset: 0 }, { color: '#ac49f5', offset: 1 }]), 9],
[new LinearGradient([{ color: '#bbb7fc', offset: 0 }, { color: '#564af7', offset: 1 }]), 8],
[new LinearGradient([{ color: '#f5b5c2', offset: 0 }, { color: '#e64566', offset: 1 }]), 7],
[new LinearGradient([{ color: '#f8c5a6', offset: 0 }, { color: '#ed6f21', offset: 1 }]), 6],
[new LinearGradient([{ color: '#fceb99', offset: 0 }, { color: '#f7ce00', offset: 1 }]), 5],
[new LinearGradient([{ color: '#dbefa5', offset: 0 }, { color: '#a5d61d', offset: 1 }]), 4],
[new LinearGradient([{ color: '#c1e4be', offset: 0 }, { color: '#64bb5c', offset: 1 }]), 3],
[new LinearGradient([{ color: '#c0ece5', offset: 0 }, { color: '#61cfbe', offset: 1 }]), 2],
[new LinearGradient([{ color: '#b5e0f4', offset: 0 }, { color: '#46b1e3', offset: 1 }]), 1]
])
// 也可简写为 .colors('#46b1e3') 设置单一颜色
.width('80%')
.height('80%')
.strokeWidth(18) // 环形厚度
.description(this.descriptionBuilderImage) // 插入自定义 Builder 的内容,可用文本或图片
.padding(18)
}
Gauge 组件的示例效果(属性运用)如下图所示:
图 2 Gauge 组件的示例效果(属性运用)
ICP备案:
公安联网备案: