GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>系统教程 > ArkUI eTS健康饮食APP之自定义PieChart组件

ArkUI eTS健康饮食APP之自定义PieChart组件

来源:Ghost系统之家浏览:时间:2023-04-12 07:50:36

ArkUI eTS健康饮食APP之自定义PieChart组件

作者:狼哥Army 2022-10-10 14:51:51系统 OpenHarmony 此帖详细介绍基于画布组件Canvas上,画一个饼图自定义组件,这里先来了解一下Canvas组件的属性和方法。

​​想了解更多关于开源的内容,请访问:​​

​​51CTO开源基础软件社区​​

​​https://ost.51cto.com​​

前言

此帖详细介绍基于画布组件Canvas上,画一个饼图自定义组件,这里先来了解一下Canvas组件的属性和方法,下面先显示此帖子Demo的效果:

#打卡不停更#ArkUI eTS健康饮食APP之自定义PieChart组件-开源基础软件社区

Canvas组件

#打卡不停更#ArkUI eTS健康饮食APP之自定义PieChart组件-开源基础软件社区#打卡不停更#ArkUI eTS健康饮食APP之自定义PieChart组件-开源基础软件社区#打卡不停更#ArkUI eTS健康饮食APP之自定义PieChart组件-开源基础软件社区#打卡不停更#ArkUI eTS健康饮食APP之自定义PieChart组件-开源基础软件社区

这里只是此自定义组件用到Canvas画布组件的关键属性,接口;要查看更多的关于Canvas参数接口,请移步到官方文档:​https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-canvasrenderingcontext2d-0000001333720961。

Demo介绍

创建一个新的eTS文件,用来编写自定义PicChart组件,代码如下:

@Componentexport struct CustomPieChart {// 饼图数据private picChartElements: PicChartElement[]// 圆半径@State circle_radius:number = 80// 单位@State unit: string = "克"// 获取上下文private settings: RenderingContextSettings = new RenderingContextSettings(true)private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)aboutToAppear() {let total = 0// 统计总数量this.picChartElements.forEach((value) => {total += value.quantity})// 初始化 弧线的终止弧度let lastEndAngle = -0.5 * Math.PI// 封装饼图数据this.picChartElements.forEach((value) => {// 占用百分比let percent = value.quantity / total// 四舍五入,获取整数value.percent = Math.round(percent * 100)// 初始化终止弧度为 弧线的起始弧度value.beginAngle = lastEndAngle// 计算弧线的终止弧度value.endAngle = (percent * 2 * Math.PI) + lastEndAngle// 赋值终止弧度为变量,作为下次的起始弧度lastEndAngle = value.endAngle// 返回封装好的对象return value})}build() {Column({space: 30}) {Canvas(this.context)// 高度为半径2倍.height(this.circle_radius * 2)// 纵横比,宽度和高度一样.aspectRatio(1)// 画布组件的事件回调,可以在此时进行绘制.onReady(() => {this.picChartElements.forEach((item) => {// 创建一个新的控制路径this.context.beginPath()// 路径从当前点移动到指定点this.context.moveTo(this.circle_radius, this.circle_radius)// 绘制弧线路径(弧线圆心的x坐标值,弧线圆心的y坐标值,弧线的圆半径,弧线的起始弧度,弧线的终止弧度)this.context.arc(this.circle_radius, this.circle_radius, this.circle_radius, item.beginAngle, item.endAngle)// 指定绘制的填充色this.context.fillStyle = item.color// 对封闭路径进行填充this.context.fill()})})Flex({direction: FlexDirection.Row, wrap: FlexWrap.Wrap, justifyContent: FlexAlign.SpaceAround}) {ForEach(this.picChartElements, (item: PicChartElement) => {Row({ space: 4 }) {// 标注圆点颜色Circle({ width: 8, height: 8 }).fill(item.color)// 标注文本Text(item.element).fontSize(12)// 标注数量Text(item.quantity + ' ' + this.unit).fontSize(12)}.height(30)})}.width('100%')}.width('100%')}}export class PicChartElement {element: Resource | string// 显示文本quantity: number// 数量percent: number // 百分比beginAngle: number// 弧线的起始弧度endAngle: number// 弧线的终止弧度color: string // 颜色constructor(element: Resource | string, quantity: number, color: string) {this.element = elementthis.quantity = quantitythis.color = color}}

通过import引用自定义PieChart组件到要使用的页面,创建Sample页面,根据PieChart数据实体类定义饼图数据源,文本,数量,颜色对象,饼图半径,显示单位可选,默认半径为80,单位为克。具体使用方法看Sample代码如下:

// 引用自定义组件import { CustomPieChart, PicChartElement } from '../components/CustomPieChart'@Entry@Componentstruct SampleCustomPicChart {// 饼图1数据private picChartElements: PicChartElement[] = [new PicChartElement('蛋白质', 14.9, '#ff9421'),new PicChartElement('脂肪', 39.8, '#ffd100'),new PicChartElement('碳水', 19.1, '#4cd041'),new PicChartElement('甜点', 9.1, '#4cd0ee'),new PicChartElement('海鲜', 11.1, '#999999')]// 饼图2数据private picChartElements2: PicChartElement[] = [new PicChartElement('蛋白质', 5.9, '#ff9421'),new PicChartElement('脂肪', 9.8, '#ffd100'),new PicChartElement('碳水', 7.1, '#4cd041')]build() {Column({ space: 10 }) {// 饼图1 (半径,单位使用默认值)CustomPieChart({picChartElements: this.picChartElements})// 饼图2 (半径指定为120, 单位指定为kcal)CustomPieChart({picChartElements: this.picChartElements2, circle_radius: 120, unit: 'kcal'})}.width('100%').padding(30)}}

总结

通过此帖,可以简单学会自定义PieChart组件,如何引用使用,在健康饮食APP里,再次完成了一小部分内容,下来继续一个个组件完成,然后拼装就出来一个健康饮食APP了。

​​想了解更多关于开源的内容,请访问:​​

​​51CTO开源基础软件社区​​

​​https://ost.51cto.com​​。

责任编辑:jianghua 来源:51CTO开源基础软件社区 ArkUI eTSPieChart组件

推荐系统

  • 微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载

    微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载

    语言:中文版系统大小:5.13GB系统类型:Win11

    微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化  1、保留 Edge浏览器。  2、隐藏“操作中心”托盘图标。  3、保留常用组件(微软商店,计算器,图片查看器等)。  5、关闭天气资讯。 

  • Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载

    Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载

    语言:中文版系统大小:4.75GB系统类型:Win11

    Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件

  • windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化

  • 微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载

  • 微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    语言:中文版系统大小:0MB系统类型:Win11

    微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为

  • 雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    语言:中文版系统大小:4.75GB系统类型:

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统

  • 雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    语言:中文版系统大小:5.91GB系统类型:Win7

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户

  • 番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载

    番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载

    语言:中文版系统大小:3.91GB系统类型:Win7

    欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统