0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙ArkTS声明式组件:DataPanel

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-21 09:42 次阅读

DataPanel

数据面板组件,用于将多个数据占比情况使用占比图进行展示。

说明:
发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

接口

DataPanel(options:{values: number[], max?: number, type?: DataPanelType})

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数名参数类型必填参数描述
valuesnumber[]数据值列表,最多包含9个数据,大于9个数据则取前9个数据。若数据值小于0则置为0。
maxnumber- max大于0,表示数据的最大值。 - max小于等于0,max等于value数组各项的和,按比例显示。 默认值:100
type8+[DataPanelType]数据面板的类型(不支持动态修改)。 默认值:DataPanelType.Circle

DataPanelType枚举说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称描述
Line线型数据面板。
Circle环形数据面板。

属性

除支持[通用属性]外,还支持以下属性:

名称参数类型描述
closeEffectboolean关闭数据占比图表旋转动效和投影效果。 默认值:false**说明:**若未设置trackShadow属性,则该属性控制投影效果的开关,开启投影的效果为投影的默认效果。 若设置trackShadow属性,则由trackShadow属性值控制投影效果的开关。
valueColors10+Array<[ResourceColor][LinearGradient]>
trackBackgroundColor10+[ResourceColor]底板颜色。 默认值:'#08182431',格式为十六进制ARGB值,前俩位代表透明度。
strokeWidth10+[Length]圆环粗细。 默认值:24 单位:vp**说明:**设置小于0的值时,按默认值显示。 数据面板的类型为DataPanelType.Line时该属性不生效。
trackShadow10+[DataPanelShadowOptions]投影样式。**说明:**设置null为不开启投影。

DataPanelShadowOptions10+对象说明

名称参数类型必填描述
radiusnumber[Resource]
colorsArray<[ResourceColor][LinearGradient]>
offsetXnumber[Resource]
offsetYnumber[Resource]

LinearGradient10+对象说明

线性渐变颜色描述。

LinearGradient(colorStops: ColorStop[])

名称参数类型必填描述
colorStops[ColorStop]存储渐变颜色和渐变点。

ColorStop10+对象说明

颜色断点类型,用于描述渐进色颜色断点。

名称参数类型必填描述
color[ResourceColor]颜色值。
offset[Length]渐变色断点(0~1之间的比例值,若数据值小于0则置为0,若数据值大于1则置为1)。**说明:**若传入字符串类型且内容为数字,则转换为对应的数值。 例如'10vp'转换为10,'10%'转换为0.1。HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

鸿蒙文档.png

示例

示例1

// xxx.ets
@Entry
@Component
struct DataPanelExample {
  public valueArr: number[] = [10, 10, 10, 10, 10, 10, 10, 10, 10]

  build() {
    Column({ space: 5 }) {
      Row() {
        Stack() {
          DataPanel({ values: [25], max: 100, type: DataPanelType.Circle }).width(168).height(168)
          Column() {
            Text('30').fontSize(35).fontColor('#182431')
            Text('1.0.0').fontSize(9.33).lineHeight(12.83).fontWeight(500).opacity(0.6)
          }

          Text('%')
            .fontSize(9.33)
            .lineHeight(12.83)
            .fontWeight(500)
            .opacity(0.6)
            .position({ x: 104.42, y: 78.17 })
        }.margin({ right: 44 })

        Stack() {
          DataPanel({ values: [50, 12, 8, 5], max: 100, type: DataPanelType.Circle }).width(168).height(168)
          Column() {
            Text('75').fontSize(35).fontColor('#182431')
            Text('已使用98GB/128GB').fontSize(8.17).lineHeight(11.08).fontWeight(500).opacity(0.6)
          }

          Text('%')
            .fontSize(9.33)
            .lineHeight(12.83)
            .fontWeight(500)
            .opacity(0.6)
            .position({ x: 104.42, y: 78.17 })
        }
      }.margin({ bottom: 59 })

      DataPanel({ values: this.valueArr, max: 100, type: DataPanelType.Line }).width(300).height(10)
    }.width('100%').margin({ top: 5 })
  }
}

dataPanel

示例2

// xxx.ets
@Entry
@Component
struct LinearGradientDataPanelExample {
  public values1: number[] = [20, 20, 20, 20]
  public color1: LinearGradient = new LinearGradient([{ color: "#65EEC9A3", offset: 0 }, { color: "#FFEF629F", offset: 1 }])
  public color2: LinearGradient = new LinearGradient([{ color: "#FF67F9D4", offset: 0 }, { color: "#FFFF9554", offset: 1 }])
  public colorShadow1: LinearGradient = new LinearGradient([{ color: "#65EEC9A3", offset: 0 }, { color: "#65EF629F", offset: 1 }])
  public colorShadow2: LinearGradient = new LinearGradient([{ color: "#65e26709", offset: 0 }, { color: "#65efbd08", offset: 1 }])
  public colorShadow3: LinearGradient = new LinearGradient([{ color: "#6572B513", offset: 0 }, { color: "#6508efa6", offset: 1 }])
  public colorShadow4: LinearGradient = new LinearGradient([{ color: "#65ed08f5", offset: 0 }, { color: "#65ef0849", offset: 1 }])
  @State color3: string = '#00FF00'
  @State color4: string = '#20FF0000'
  @State bgColor: string = '#08182431'
  @State offsetX: number = 15
  @State offsetY: number = 15
  @State radius: number = 5
  @State colorArray: Array< LinearGradient | ResourceColor > = [this.color1, this.color2, this.color3, this.color4]
  @State shadowColorArray: Array< LinearGradient | ResourceColor > = [this.colorShadow1, this.colorShadow2, this.colorShadow3, this.colorShadow4]

  build() {
    Column({ space: 5 }) {
      Text('LinearGradient').fontSize(9).fontColor(0xCCCCCC).textAlign(TextAlign.Start).width('100%').margin({ top: 20, left: 20})
      DataPanel({ values: this.values1, max: 100, type: DataPanelType.Circle })
        .width(300)
        .height(300)
        .valueColors(this.colorArray)
        .trackShadow({
          radius: this.radius,
          colors: this.shadowColorArray,
          offsetX: this.offsetX,
          offsetY: this.offsetY
        })
        .strokeWidth(30)
        .trackBackgroundColor(this.bgColor)
    }.width('100%').margin({ top: 5 })
  }
}

LinearGradientDataPanel

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 组件
    +关注

    关注

    1

    文章

    422

    浏览量

    17661
  • 鸿蒙
    +关注

    关注

    55

    文章

    2090

    浏览量

    42261
收藏 人收藏

    评论

    相关推荐

    鸿蒙ArkTS的起源和简介

    1、引言 Mozilla创造了JS,Microsoft创建了TS,Huawei进一步推出了ArkTS。 从最初的基础的逻辑交互能力,到具备类型系统的高效工程开发能力,再到融合声明UI、多维状态管理
    发表于 01-16 16:23

    鸿蒙入门实战-ArkTS开发

    声明UI基本概念 应用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以声明开发范式开发界面的语言。
    发表于 01-16 17:27

    HarmonyOS/OpenHarmony应用开发-ArkTS声明开发范式

    轨迹。状态与数据管理状态数据管理作为基于ArkTS声明开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括UI组件状态和应用程序状态,两者协
    发表于 01-17 15:09

    HarmonyOS/OpenHarmony应用开发-声明开发范式组件汇总

    组件是构建页面的核心,每个组件通过对数据和方法的简单封装,实现独立的可视、可交互功能单元。组件之间相互独立,随取随用,也可以在需求相同的地方重复使用。声明
    发表于 01-19 11:14

    鸿蒙开发之ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能
    的头像 发表于 01-24 16:44 1169次阅读
    <b class='flag-5'>鸿蒙</b>开发之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙ArkTS声明组件:Blank

    空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column/Flex时生效。
    的头像 发表于 06-19 16:21 214次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:Blank

    鸿蒙ArkTS声明组件:Checkbox

    提供多选框组件,通常用于某选项的打开或关闭。
    的头像 发表于 06-20 15:36 173次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:Checkbox

    鸿蒙ArkTS声明组件:DatePicker

    日期选择器组件,用于根据指定日期范围创建日期滑动选择器。
    的头像 发表于 06-21 16:46 124次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:DatePicker

    鸿蒙ArkTS声明组件:【Divider】

    提供分隔器组件,分隔不同内容块/内容元素。
    的头像 发表于 06-22 10:06 164次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:【Divider】

    鸿蒙ArkTS声明组件:【Gauge】

    数据量规图表组件,用于将数据展示为环形图表。
    的头像 发表于 06-22 10:10 127次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:【Gauge】

    鸿蒙ArkTS声明组件:LoadingProgress

    用于显示加载动效的组件
    的头像 发表于 06-24 16:53 177次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:LoadingProgress

    鸿蒙ArkTS声明组件:Marquee

    跑马灯组件,用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动,不超过时不滚动。
    的头像 发表于 06-25 15:52 145次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:Marquee

    鸿蒙ArkTS声明组件:Navigation

    Navigation组件一般作为Page页面的根容器,通过属性设置来展示页面的标题栏、工具栏、导航栏等。
    的头像 发表于 06-26 09:43 94次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:Navigation

    鸿蒙ArkTS声明组件:PatternLock

    图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景。手指在PatternLock组件区域按下时开始进入输入状态,手指离开屏幕时结束输入状态完成密码输入。
    的头像 发表于 06-27 09:59 103次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:PatternLock

    鸿蒙ArkTS声明组件:QRCode

    用于显示单个二维码的组件
    的头像 发表于 06-28 11:37 116次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>组件</b>:QRCode