首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

HarmonyOS鸿蒙开发实战( Beta5.0)MpChart运动健康场景实践案例

  • 25-03-03 06:42
  • 3320
  • 11304
blog.csdn.net

鸿蒙HarmonyOS开发实战往期必看文章:(持续更新......)

HarmonyOS NEXT应用开发性能实践总结(持续更新......)

HarmonyOS NEXT应用开发案例实践总结合集(持续更新......)

一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!

最新版!“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)


介绍

MpChart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI,MpChart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图等自定义图表库。 本示例介绍了MpChart图表组件的使用方法。 该组件多用于可视化等场景。

效果图预览

使用说明:

  • 滑动屏幕,查看各图表组件。
  • 点击曲线图内容,展示图表信息。

实现思路

  1. 健身记录部分:使用柱状图描述近七日每日的热量消耗情况,主要实现点在于柱状图的创建过程。
  • 初始化图表配置构建类
  1. // 初始化图表配置构建类
  2. this.model = new BarChartModel();
  3. // 设置图表数据最大的绘制数,如果超过该数值,则不进行绘制图表的数值标签
  4. this.model.setMaxVisibleValueCount(VISIBLE_VALUE_COUNT);
  5. // 是否绘制图表的背景色,绘制范围为图表柱状图的绘制范围,不包含轴线之外的部分
  6. this.model.setDrawGridBackground(true);
  7. // 设置图表的背景色,颜色的规格需要满足CanvasRenderingContext2D.fillstyle/strokestyle规格
  8. this.model.setGridBackgroundColor(GRID_BG_COLOR);
  9. // 设置不绘制柱状图的柱体阴影背景
  10. this.model.setDrawBarShadow(false);
  11. // 设置柱状图的数值在柱体上方
  12. this.model.setDrawValueAboveBar(true);
  13. // 设置柱状图的高亮范围是否为整个柱体,只在堆叠柱状图中有区别
  14. this.model.setHighlightFullBarEnabled(true);
  • 限制线的设置
  1. // 为左Y轴设置LimitLine,可设置限制线的宽度,线段样式,限制标签的位置,标签字体大小等
  2. this.limitLine = new LimitLine(STEP_TARGET_NUMBER, STEP_TARGET);
  3. // 设置限制线的宽度
  4. this.limitLine.setLineWidth(LINE_WIDTH);
  5. // 设置限制线虚线类型的长度
  6. this.limitLine.enableDashedLine(DASHED_LINE_LENGTH, DASHED_SPACE_LENGTH, ZERO);
  7. // 设置限制线的颜色
  8. this.limitLine.setLineColor(Color.Gray);
  9. // 设置限制线的位置
  10. this.limitLine.setLabelPosition(LimitLabelPosition.RIGHT_TOP);
  11. // 设置限制线上文本的大小
  12. this.limitLine.setTextSize(vp2px(TEXT_SIZE));
  • X轴Y轴设置
  1. // 设置图表左Y轴信息
  2. this.leftAxis = this.model.getAxisLeft();
  3. if (this.leftAxis) {
  4. // 设置图表左Y轴最小值
  5. this.leftAxis.setAxisMinimum(ZERO);
  6. // 设置图表左Y轴是否在数据后绘制限制线
  7. this.leftAxis.setDrawLimitLinesBehindData(false);
  8. // 设置图表左Y轴数据的格式转换器
  9. this.leftAxis.setValueFormatter(new YValueFormatter());
  10. // 添加LimitLines
  11. this.leftAxis.addLimitLine(this.limitLine);
  12. }
  13. // 设置图表右Y轴信息
  14. this.rightAxis = this.model.getAxisRight();
  15. if (this.rightAxis) {
  16. // 设置图表右Y轴是否显示
  17. this.rightAxis.setEnabled(false);
  18. // 设置图表右Y轴最小值
  19. this.rightAxis.setAxisMinimum(ZERO);
  20. }
  21. // 设置X轴信息
  22. this.xAxis = this.model.getXAxis();
  23. if (this.xAxis) {
  24. // 设置X轴是否绘制网格线
  25. this.xAxis.setDrawGridLines(false);
  26. // 设置绘制标签个数
  27. this.xAxis.setLabelCount(LABEL_COUNT, false);
  28. //设置标签位置
  29. this.xAxis.setPosition(XAxisPosition.BOTTOM);
  30. // 设置数据的格式转换器
  31. this.xAxis.setValueFormatter(new XValueFormatter());
  32. }
  • 绑定图表数据
  1. // 生成数据
  2. this.data = this.getNormalData();
  3. // TODO 知识点:将数据与图表配置类绑定
  4. this.model.setData(this.data);
  1. 健康数据部分:使用曲线图展示每日的热量消耗情况,主要实现点在于曲线图的创建过程。
  • 初始化图表配置构建类
  1. // 初始化图表配置构建类
  2. this.model = new LineChartModel();
  3. this.model.setPinchZoom(false);
  4. this.model.setDrawGridBackground(false);
  • X轴Y轴设置
  1. // 设置X轴信息
  2. this.xAxis = this.model.getXAxis();
  3. if (this.xAxis) {
  4. //设置标签位置
  5. this.xAxis.setPosition(XAxisPosition.BOTTOM);
  6. // 设置X轴是否绘制网格线
  7. this.xAxis.setDrawGridLines(true);
  8. this.xAxis.setGranularity(1);
  9. // 设置数据的格式转换器
  10. this.xAxis.setValueFormatter(new XValueFormatter());
  11. // 设置绘制标签个数
  12. this.xAxis.setLabelCount(10);
  13. this.xAxis.enableGridDashedLine(2, 2, 0);
  14. }
  15. // 设置图表左Y轴信息
  16. this.leftAxis = this.model.getAxisLeft();
  17. if (this.leftAxis) {
  18. this.leftAxis.setLabelCount(4, true);
  19. this.leftAxis.setDrawGridLines(true);
  20. // 设置图表左Y轴是否在数据后绘制限制线
  21. this.leftAxis.setDrawGridLinesBehindData(true);
  22. this.leftAxis.setPosition(YAxisLabelPosition.OUTSIDE_CHART);
  23. this.leftAxis.setAxisMinimum(0);
  24. // 设置图表左Y轴数据的格式转换器
  25. this.leftAxis.setValueFormatter(new YValueFormatter());
  26. this.leftAxis.setEnabled(true);
  27. this.leftAxis.enableGridDashedLine(2, 2, 0);
  28. }
  29. // 设置图表右Y轴信息
  30. this.rightAxis = this.model.getAxisRight();
  31. if (this.rightAxis) {
  32. // 设置图表右Y轴是否显示
  33. this.rightAxis.setEnabled(false);
  34. }
  • 图表图例部分
  1. // 获取图表图例部件,设置图表图例部件不可用
  2. let legend: Legend | null = this.model.getLegend();
  3. if (legend) {
  4. legend.setEnabled(true);
  5. // 设置图例类型
  6. legend.setForm(LegendForm.LINE);
  7. // 设置图例文本大小
  8. legend.setTextSize(vp2px(14));
  9. // 设置图例方向为水平
  10. legend.setOrientation(LegendOrientation.HORIZONTAL);
  11. // 设置图例垂直对齐方式为顶部
  12. legend.setVerticalAlignment(LegendVerticalAlignment.TOP);
  13. // 设置图例水平对齐方式为左对齐
  14. legend.setHorizontalAlignment(LegendHorizontalAlignment.LEFT);
  15. }
  • 绑定图表数据
  1. // 生成数据
  2. this.lineData = this.getLineData();
  3. // TODO 知识点:将数据与图表配置类绑定
  4. this.model.setData(this.lineData);

高性能知识点

不涉及

工程结构&模块类型

  1. health // 运动健康场景实践案例
  2. |---model
  3. | |---BasicDataSource.ets // 数据类型文件
  4. |---view
  5. | |---BarCharts.ets // 柱状图组件
  6. | |---MpCharts.ets // 图表列表页面
  7. | |---LineCharts.ets // 曲线图组件

最后

小编在之前的鸿蒙系统扫盲中,有很多朋友给我留言,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)路线图、学习视频、文档用来跟着学习是非常有必要的。 

如果你是一名有经验的资深Android移动开发、Java开发、前端开发、对鸿蒙感兴趣以及转行人员

鸿蒙 NEXT 全栈开发学习笔记  希望这一份鸿蒙学习文档能够给大家带来帮助~

这份鸿蒙(HarmonyOS NEXT)包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、(南向驱动、嵌入式等)鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。


鸿蒙(HarmonyOS NEXT)最新学习路线

​

该路线图包含基础技能、就业必备技能、多媒体技术、六大电商APP、进阶高级技能、实战就业级设备开发,不仅补充了华为官网未涉及的解决方案

路线图适合人群:

IT开发人员:想要拓展职业边界
零基础小白:鸿蒙爱好者,希望从0到1学习,增加一项技能。
技术提升/进阶跳槽:发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术

2.视频学习教程+学习PDF文档

HarmonyOS Next 最新全套视频教程 全球开发者的开源社区,开源代码

  纯血版鸿蒙全套学习文档(面试、文档、全套视频等)  全球开发者的开源社区,开源代码

​​

《鸿蒙大厂面试真题》GitCode - 全球开发者的开源社区,开源代码

总结

参与鸿蒙开发,你要先认清适合你的方向,如果是想从事鸿蒙应用开发方向的话,可以参考本文的学习路径,简单来说就是:为了确保高效学习,建议规划清晰的学习路线

鸿蒙NEXT全套学习资料
微信名片
注:本文转载自blog.csdn.net的让开,我要吃人了的文章"https://blog.csdn.net/weixin_55362248/article/details/142525956"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top