数据量规图表组件
用于将数据展示为环形图表
参数形式 : Gauge( options: { value: number, min?: number, max?: number } )
| 参数名 | 参数类型 | 是否必填 | 默认值 | 参数描述 |
| value | number | 是 | - | 量规图的当前数据值,即图中指针指向位置。 用于组件创建时量规图初始值预设。 注意 : 当 value 值不在 min 和 max 范围内的时候使用 min 作为默认值 |
| min | number | 否 | 0 | 当前数据段最小值 |
| max | number | 否 | 100 | 当前数据段最大值 注意 : 当 max 小于 min 的时候,min 和 max 都会使用默认值,即 0 和 100。 max 和 min 支持填写负数 |
| 名称 | 参数类型 | 默认值 | 描述 |
| value | number | 0 | 设置量规图的数据值,可用于动态修改量规图的数据值 |
| startAngle | number | 0 | 设置起始角度位置 时钟 0 点为 0 度 顺时针方向为正角度 |
| endAngle | number | 360 | 设置终止角度位置 时钟 0 点为 0 度 顺时针方向为正角度 |
| colors | Array | Color.Black | 设置量规图的眼色,支持分段颜色设置 |
| strokeWidth | Length | 4vp | 设置环形量规图的环形厚度 注意 : 设置小于 0 的值时,按默认值显示,不支持百分比 |
| 名称 | 类型定义 | 描述 |
| ColorStop | [ resourceColor, number ] | 描述渐进色颜色断点类型 第一个参数为颜色值,若设置为非颜色类型,则置为黑色。 第二个参数为颜色所占比重,若设置为负数或是非数值类型,则将比重置为0。 |
此时没有预设参数 min 和 max,所以 min 和 max 的值就是 0 和 100
那么 value 就按照 0 ~ 100 来取值
所以
25 就是 四分之一 位置( 90deg )
50 就是 二分之一 位置( 180deg )
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Row() {
- Gauge({ value: 25 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }.margin(30)
-
- Row() {
- Gauge({ value: 50 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }
- }.padding(50)
- }
- }

此时因为有预设参数 min 和 max, 分别是 0 和 10
那么 value 就要按照 0 ~ 10 来取值
所以
2.5 就是 四分之一 位置( 90deg )
5 就是 二分之一 位置( 180deg )
50 因为超出了 min ~ max 的取值范围,所以 value 就用 min 的值
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }
-
- Row() {
- Gauge({ value: 5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }.margin(30)
-
- Row() {
- // value 超出了 min ~ max 的取值范围,所以 value 就是 min 的值
- Gauge({ value: 50, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }
- }.padding(50)
- }
- }

通过相关属性设置了量规图的开始位置和结束位置
也就是从 270deg 位置顺时针画圆截至 150deg 位置
形成了一个非闭合圆环
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }
-
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- .startAngle(270)
- .endAngle(150)
- }.margin(30)
-
- }.padding(50)
- }
- }

- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }
-
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- .strokeWidth(20)
- }.margin(30)
-
- }.padding(50)
- }
- }

colors( [ [0xAABBCC, 0.1], [0xDDEEFF, 0.2], [0xAADDFF, 0.3], [0xCC2233, 0.4] ] )
颜色1 比重 颜色2 比重 颜色3 比重 颜色4 比重
因为 0.1 + 0.2 + 0.3 + 0.4 总和是 1
所以
颜色1 占比 十分之一
颜色2 占比 十分之二
颜色3 占比 十分之三
颜色4 占比 十分之四
- @Entry
- @Component
- struct Index {
- build() {
- Column() {
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
- }
-
- Row() {
- Gauge({ value: 2.5, min: 0, max: 10 })
- .width(200).height(200)
- .colors([[0xAABBCC, 0.1], [0xDDEEFF, 0.2], [0xAADDFF, 0.3], [0xCC2233, 0.4]])
- }.margin(30)
-
- }.padding(50)
- }
- }

