HarmonyOS Next 利用MpChart活动康健场景实践案例_mpchart arkts(1) ...

打印 上一主题 下一主题

主题 1019|帖子 1019|积分 3057



网上学习资料一大堆,但如果学到的知识不成体系,碰到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技能提升。
必要这份体系化的资料的朋侪,可以戳这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技能交换、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习成长!
利用阐明


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


  • 健身记载部分:利用柱状图描述近七日逐日的热量消耗情况,重要实现点在于柱状图的创建过程。


  • 初始化图表设置构建类
  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.   // 初始化图表配置构建类
  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)**技能知识点。
深知大多数程序员,想要提升技能,往往是自己探索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技能故步自封!



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比力多,这里只是将部分目次截图出来,全套包含大厂面经、学习笔记、源码课本、实战项目、大纲路线、讲解视频,并且后续会持续更新
必要这份体系化的资料的朋侪,可以戳这里获取
图片转存中…(img-Ms8r5Xe1-1715811700142)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比力多,这里只是将部分目次截图出来,全套包含大厂面经、学习笔记、源码课本、实战项目、大纲路线、讲解视频,并且后续会持续更新
必要这份体系化的资料的朋侪,可以戳这里获取

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表