诗林 发表于 2025-4-9 03:07:08

鸿蒙API13开发【信息展示之DataPanel】ArkTS组件

数据面板组件,用于将多个数据占比情况使用占比图进行展示。
阐明
该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
子组件


接口

DataPanel(options: DataPanelOptions)
卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明options是数据面板组件参数。 DataPanelOptions对象阐明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明valuesnumber[]是数据值列表,最多包罗9个数据,大于9个数据则取前9个数据。若数据值小于0则置为0。maxnumber否- max大于0,表示数据的最大值。- max小于等于0,max等于value数组各项的和,按比例显示。默认值:100type8+否数据面板的类型(不支持动态修改)。默认值:DataPanelType.Circle DataPanelType8+摆列阐明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
名称阐明Line线型数据面板。Circle环形数据面板。 属性

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

closeEffect(value: boolean)
设置关闭数据占比图表旋转动效和投影效果。若未设置,则该属性控制投影效果的开关,开启投影的效果为投影的默认效果。若设置trackShadow属性,则由trackShadow属性值控制投影效果的开关。
卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明valueboolean是关闭数据占比图表旋转动效和投影效果。默认值:false valueColors10+

valueColors(value: Array<ResourceColor | LinearGradient>)
设置各数据段颜色。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明valueArray<>是 trackBackgroundColor10+

trackBackgroundColor(value: ResourceColor)
设置底板颜色。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明value是底板颜色。默认值:‘#08182431’,格式为十六进制ARGB值,前俩位代表透明度。 strokeWidth10+

strokeWidth(value: Length)
设置圆环粗细。数据面板的类型为DataPanelType.Line时该属性不生效。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明value是圆环粗细。默认值:24单位:vp**阐明:**设置小于0的值时,按默认值显示。请公道设置圆环粗细,当value大于圆环半径时,圆环粗细会主动设置为圆环半径的12%。当value过大时,圆环可能会消失。 trackShadow10+

trackShadow(value: DataPanelShadowOptions)
设置投影样式。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明value是投影样式。**阐明:**设置null为不开启投影。 contentModifier12+

contentModifier(modifier: ContentModifier)
定制DataPanel内容区的方法。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明modifier是在DataPanel组件上,定制内容区的方法。modifier: 内容修改器,开发者必要自定义class实现ContentModifier接口。 DataPanelShadowOptions10+对象阐明

DataPanelShadowOptions继承自,具有MultiShadowOptions的全下属性。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明colorsArray<>否 LinearGradient10+

constructor

constructor(colorStops: ColorStop[])
线性渐变颜色形貌。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明colorStops[]是存储渐变颜色和渐变点。 ColorStop10+

颜色断点类型,用于形貌渐进色颜色断点。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明color是颜色值。offset是渐变色断点(0~1之间的比例值,若数据值小于0则置为0,若数据值大于1则置为1)。**阐明:**若传入字符串类型且内容为数字,则转换为对应的数值。比方’10vp’转换为10,'10%'转换为0.1。 DataPanelConfiguration12+对象阐明

开发者必要自定义class实现ContentModifier接口。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明valuesnumber[]是当前DataPanel的数据值,最大长度为9。maxValuenumber是DataPanel显示的最大值。默认值:100。 示例

示例1(设置数据面板类型)

该示例通过type属性,实现了设置数据面板的类型的功能。
// xxx.ets
@Entry
@Component
struct DataPanelExample {
public valueArr: number[] =

build() {
    Column({ space: 5 }) {
      Row() {
      Stack() {
          // 单段环形数据面板
          DataPanel({ values: , 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: , 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(20)
    }.width('100%').margin({ top: 5 })
}
}
https://i-blog.csdnimg.cn/direct/4f144d277e3a4298bc7fb6c37562d355.png
示例2(设置渐变色和阴影)

该示例通过valueColors和trackShadow接口设置LinearGradient颜色,实现了设置渐变色效果和阴影效果。
// xxx.ets
@Entry
@Component
struct LinearGradientDataPanelExample {
public values1: number[] =
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> =
@State shadowColorArray: Array<LinearGradient | ResourceColor> =
   

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 })
}
}
https://i-blog.csdnimg.cn/direct/ec5102e48c554cd8b22d429fb9c6c6fa.png
示例3(设置关闭动画和阴影)

该示例通过closeEffect接口,实现了关闭数据面板动画和阴影的功能。
// xxx.ets
@Entry
@Component
struct LinearGradientDataPanelExample {
public values1: number[] =
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> =
@State shadowColorArray: Array<LinearGradient | ResourceColor> =
   

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)
      .strokeWidth(30)
      .closeEffect(true)
      .trackBackgroundColor(this.bgColor)
    }.width('100%').margin({ top: 5 })
}
}
https://i-blog.csdnimg.cn/direct/abfb2e50a8a64e8fa17bef2e3f6dc5cd.png
示例4(设置定制内容区)

该示例通过contentModifier接口,实现了定制数据面板内容区的功能。
// xxx.ets
@Builder
function buildDataPanel(config: DataPanelConfiguration) {
Column() {
    Column() {
      ForEach(config.values, (item: number, index: number) => {
      ChildItem({ item: item, index: index, max: config.maxValue })
      }, (item: string) => item)
    }.padding(10)

    Column() {
      Line().width("100%").backgroundColor("#ff373737").margin({ bottom: 5 })
    }.padding({ left: 20, right: 20 })

    Row() {
      Text('Length=' + config.values.length + '    ').margin({ left: 10 }).align(Alignment.Start)
      Text('Max=' + config.maxValue).margin({ left: 10 }).align(Alignment.Start)
    }
}
}

class DataPanelBuilder implements ContentModifier<DataPanelConfiguration> {
constructor() {
}

applyContent(): WrappedBuilder<> {
    return wrapBuilder(buildDataPanel)
}
}

@Entry
@Component
struct Index {
build() {
    Column() {
      Text("Data panel").margin({ top: 12 });
      Row() {
      DataPanel({ values: , max: 140, type: DataPanelType.Circle })
          .width(400)
          .height(260)
          .constraintSize({ maxWidth: "100%" })
          .padding({ top: 10 })
          .contentModifier(new DataPanelBuilder())
      }.margin(15).backgroundColor("#fff5f5f5")
    }
}
}

@Component
struct ChildItem {
@Prop item: number;
@Prop index: number;
@Prop max: number;
public color1: string = "#65ff00dd"
public color2: string = "#6500ff99"
public color3: string = "#65ffe600"
public color4: string = "#6595ff00"
public color5: string = "#65000dff"
public color6: string = "#650099ff"
public colorArray: Array<string> =

build() {
    RelativeContainer() {
      Row() {
      Rect()
          .height(25)
          .width(this.item * 600 / this.max)
          .foregroundColor(this.colorArray)
          .radius(5)
          .align(Alignment.Start)
      Text(" " + this.item)
          .fontSize(17)
      }
    }.height(28)
}
}
https://i-blog.csdnimg.cn/direct/2f6e14d0eb764fd6905e634c5451517a.png
最后呢

很多开发朋侪不知道必要学习那些鸿蒙技能?鸿蒙开发岗位必要把握那些核心技能点?为此鸿蒙的开发学习必须要系统性的进行。
而网上有关鸿蒙的开发资料非常的少,如果你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节流没必要的麻烦。由两位前阿里高级研发工程师团结打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包罗了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技能知识点
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习门路图。
https://i-blog.csdnimg.cn/direct/ac6c0e1465ab44a982b6eae229c90099.png#pic_center
针对鸿蒙成长门路打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助各人在技能的道路上更进一步。


[*]《鸿蒙 (OpenHarmony)开发学习视频》
[*]《鸿蒙生态应用开发V2.0白皮书》
[*]《鸿蒙 (OpenHarmony)开发基础到实战手册》
[*]OpenHarmony北向、南向开发环境搭建
[*]《鸿蒙开发基础》
[*]《鸿蒙开发进阶》
[*]《鸿蒙开发实战》
https://i-blog.csdnimg.cn/direct/600f5bc4d5bc4b4694dda0d1004a5471.png#pic_center
总结

鸿蒙—作为国家主力推送的国产操纵系统。部门的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。
并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,将来将会支持 50 万款的应用。那么这么多的应用必要开发,也就意味着必要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来发作式的增长,学习鸿蒙势在必行! 自↓↓↓拿
https://i-blog.csdnimg.cn/direct/e05125ac385a4840aa258b8ee25dabc8.gif#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 鸿蒙API13开发【信息展示之DataPanel】ArkTS组件