• 鸿蒙入门-13Gauge组件


    数据量规图表组件

    用于将数据展示为环形图表

     

    参数

    参数形式 : 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

    名称

    类型定义

    描述

    ColorStop

    [ resourceColor, number ]

    描述渐进色颜色断点类型

    第一个参数为颜色值,若设置为非颜色类型,则置为黑色。

    第二个参数为颜色所占比重,若设置为负数或是非数值类型,则将比重置为0。

    示例 1

    此时没有预设参数 min 和 max,所以 min 和 max 的值就是 0 和 100

    那么 value 就按照 0 ~ 100 来取值

    所以

    25 就是 四分之一 位置( 90deg )

    50 就是 二分之一 位置( 180deg )

    1. @Entry
    2. @Component
    3. struct Index {
    4. build() {
    5. Column() {
    6. Row() {
    7. Gauge({ value: 25 })
    8. .width(200).height(200)
    9. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    10. }.margin(30)
    11. Row() {
    12. Gauge({ value: 50 })
    13. .width(200).height(200)
    14. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    15. }
    16. }.padding(50)
    17. }
    18. }

    示例 2

    此时因为有预设参数 min 和 max, 分别是 0 和 10

    那么 value 就要按照 0 ~ 10 来取值

    所以

    2.5 就是 四分之一 位置( 90deg )

    5 就是 二分之一 位置( 180deg )

    50 因为超出了 min ~ max 的取值范围,所以 value 就用 min 的值

    1. @Entry
    2. @Component
    3. struct Index {
    4. build() {
    5. Column() {
    6. Row() {
    7. Gauge({ value: 2.5, min: 0, max: 10 })
    8. .width(200).height(200)
    9. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    10. }
    11. Row() {
    12. Gauge({ value: 5, min: 0, max: 10 })
    13. .width(200).height(200)
    14. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    15. }.margin(30)
    16. Row() {
    17. // value 超出了 min ~ max 的取值范围,所以 value 就是 min 的值
    18. Gauge({ value: 50, min: 0, max: 10 })
    19. .width(200).height(200)
    20. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    21. }
    22. }.padding(50)
    23. }
    24. }

    示例 3

    通过相关属性设置了量规图的开始位置和结束位置

    也就是从 270deg 位置顺时针画圆截至 150deg 位置

    形成了一个非闭合圆环

    1. @Entry
    2. @Component
    3. struct Index {
    4. build() {
    5. Column() {
    6. Row() {
    7. Gauge({ value: 2.5, min: 0, max: 10 })
    8. .width(200).height(200)
    9. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    10. }
    11. Row() {
    12. Gauge({ value: 2.5, min: 0, max: 10 })
    13. .width(200).height(200)
    14. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    15. .startAngle(270)
    16. .endAngle(150)
    17. }.margin(30)
    18. }.padding(50)
    19. }
    20. }

     示例 4

    1. @Entry
    2. @Component
    3. struct Index {
    4. build() {
    5. Column() {
    6. Row() {
    7. Gauge({ value: 2.5, min: 0, max: 10 })
    8. .width(200).height(200)
    9. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    10. }
    11. Row() {
    12. Gauge({ value: 2.5, min: 0, max: 10 })
    13. .width(200).height(200)
    14. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    15. .strokeWidth(20)
    16. }.margin(30)
    17. }.padding(50)
    18. }
    19. }

    示例 5

    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 占比 十分之四

    1. @Entry
    2. @Component
    3. struct Index {
    4. build() {
    5. Column() {
    6. Row() {
    7. Gauge({ value: 2.5, min: 0, max: 10 })
    8. .width(200).height(200)
    9. .colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
    10. }
    11. Row() {
    12. Gauge({ value: 2.5, min: 0, max: 10 })
    13. .width(200).height(200)
    14. .colors([[0xAABBCC, 0.1], [0xDDEEFF, 0.2], [0xAADDFF, 0.3], [0xCC2233, 0.4]])
    15. }.margin(30)
    16. }.padding(50)
    17. }
    18. }

  • 相关阅读:
    HttpClient远程调用基本使用(详解)
    云环境固有特性及其对密码效能的挑战
    埃氏筛法与线性筛法
    [python][labelme]labelme中默认颜色
    基于element-plus2.5.10 table组件实现分类table
    极致性能优化之道之消除伪共享
    软件设计师(十)网络与信息安全基础知识
    算法题:整数除法
    用Cmake快速生成vs工程
    抖音矩阵系统,抖音矩阵系统源码。hei
  • 原文地址:https://blog.csdn.net/qq_42660453/article/details/138181367