当前位置:   article > 正文

HarmonyOS Next 使用MpChart运动健康场景实践案例_mpchart arkts

mpchart arkts

介绍

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 // 曲线图组件

模块依赖

@ohos/routermodule(动态路由)

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

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

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

如果你是一名有经验的资深Android移动开发、Java开发、前端开发、对鸿蒙感兴趣以及转行人员,可以直接领取这份资料

 获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

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

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

 有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/300592
推荐阅读
相关标签
  

闽ICP备14008679号