华为鸿蒙开发第一课(二)

简介: 华为鸿蒙开发第一课

正文


四、基础组件介绍及chart 组件使用


(1)鸿蒙系统组件介绍


  1. 组件(Component)是构建页面的核心,每个组件通过对数据和方法的简单封装,实现独立的可视、可交互功能单元。组件之间相互独立,随取随用,也可以在需求相同的地方重复使用。
  2. 鸿蒙 JS API 提供了完善的组件介绍,详细情况我们去查阅一下官方文档: 组件 - 官方介绍
  3. 根据组件的功能,可以分为以下四大类:
组件类型 主要组件
基础组件 text、image、progress、rating、span、marquee、image-animatordivider、search、menu、chart
容器组件 div、list、list-item、stack、swiper、tabs、tab-bar、tab-content、list-item-group、refresh、dialog
媒体组件 video
画布组件 canvas


(2)chart 组件体验使用


鸿蒙系统组件相较于其他前端组件仓库,给咱们专门封装了一个 chart 组件,图表组件,用于呈现线形图、柱状图、量规图界面。

官方文档地址

使用 chart 组件进行体验,具体执行步骤如下:

  1. 创建 pages.chart 文件夹,包含 chart.hml、chart.js、chart.css 三个文件。
  2. 配置路由,在 config.json 这个文件里面。

3fd9efc5c4b269cfc497cc06b6d2e214_cc016c3a9306469199e0996fc09063db.png

3.预览页面时,务必要注意打开当前需要预览的页面文件夹下 hml、css、js 任意一个文件。

4.切换页面进行预览,不需要重新启动预览器,直接点击右上角刷新按钮即可,出现错误提示。

e5174bbb5ee358eeaabc78569d8bdf09_aa3f0eb97a1a41a1a15530ceb5f92db3.png

5. pages.chart 文件夹下面的 hml、css、js 文件必须命名为 index,否则的话会出现预览错误。

2e99c1560742ffb89f86b4fe54e6fb66_af97686739164efc8bd47747d38875c3.png

6.出现预览错误修改后,刷新无效,必须重新启动预览器才能正常显示,点击右侧收起再展开即可。

12264f74f535eb51fce66f7e7ff0e368_1dc72aaef7aec9fec99ee53361dc47eb.png

7.图片路径引用失败不会出现文件查找失败错误提示,建议使用绝对路径进行文件路径编码,官方文档介绍在输出 hap 文件后,真机会因为 webpack 打包解析出现找不到文件的问题,不过模拟器是正常的。


PS:小窍门,绝对路径输入没有路径自动补全提示,可以使用「相对路径」选择到对应的文件,然后,在去掉前面的相对路径引入。


当然,如果在同一个文件夹内部,官方文档介绍使用相对路径不会出现 webpack 打包解析找不到文件的问题,所以,在同一个文件夹内部引用,使用相对路径即可。


8.ES6 Model 数据文件 import 导入只能使用相对路径,不能使用绝对路径,使用绝对路径会报错。

49d27fd0d7f4a9c2b1a15d860a5dfcd2_6cbb43a478754d3a81e5eefda4c36b0f.png

9. 使用模拟器进行模拟的时候,编辑器工具会自动打包输出 hap 文件,模拟器直接加载运行该文件,模拟器不支持热更新,预览器预览会输出编译后文件,支持热更新,也支持多设备同时预览。

2ab98e5cdb5dfbaebe774a98d5c4db3e_3cbfb5e17e104005aeaf4f74cba920cd.png

10. 调整 chart 组件的相关参数,需要注意 xAxis 的 axisTick 参数设置过小,会出现数据丢失情况。

f6ee69fc6b77a2bd372eb886bc6a3749_214d9e77d3c14b7d964e73a0f6f226bb.png


五、使用 image-animator 组件构建多图帧动画


(1)image-animator 图片帧动画播放器介绍


(1)image-animator 图片帧动画播放器介绍

image-animator 图片帧动画播放器,多图帧动画的构建能力一直以来都是基于 Android 安卓系统使用 Java or C#语言进行开发的,而华为鸿蒙系统将「图片帧动画播放器」引入到了 JS 前端开发领域,这无疑是一次巨大的突破,这也代表着华为鸿蒙系统对其图片渲染能力的巨大自信。


「属性、事件、样式、方法」组件四要素,


官方文档介绍

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-basic-image-animator-0000001050066126


(2)image-animator 图片帧动画播放器实现


1.创建一个新的 Ablity ,新起一个抽象能力的应用服务,不同的 Ablity 之间可以通过 PA 进行调用。

Ablity 是应用所具备能力的抽象,也是应用程序的重要组成部分。Ablity 由一个或多个 FA(Feature Ability)或 PA(Particle Ability)组成。其中,FA 有 UI 界面,提供与用户交互的能力;而 PA 无 UI 界面,提供后台运行任务的能力以及统一的数据访问抽象。


525381a26ecfa61401a0260bbaf4df53_7244a65502104be881ed24ad49437900.png

      2.  配置 Ability 对应的基础参数

064939feead26f7f7687b752e4d5e130_1a1c27c991ba43e6a9e664ddd6864535.png

3. 打开 pages.index.index.hml 启动预览器,对页面进行预览,输出基础 "你好 世界" 页面。

4.在阿里图标库内下载 5 张心形图片,5 张图片需要注意对应不同的大小。

阿里巴巴图标库:https://www.iconfont.cn/search/index?searchType=icon&q=heart


5.在 index.hml 文件中导入对应的页面结构代码

1fccf3a99e0bd00de10bd4fe266c644c_c30f68da76bf4a658ff481b76a2860bf.png

6. 导入 css 样式文件


5297fa867f08266168327ca40da72ca8_dcff7e2342324af98b00296067248314.png

7.设置图片文件 data model 并 export 出来 common.datas.imgs.js

5d480eaa00a9bace02ead62a75e300bb_cc372f1feeb246a2a1e7f2d062aa7bdd.png

8. 在 index.js 文件中导入图片模块,并写入相应逻辑,需要注意的是使用 $ref 获取到当前动画的节点对象。然后调用其对应的方法。

a9f20674256a0239699b97b8f6434cfc_30eb3d3e826a43fa9c8cc0390a370a95.png

9. 图片无法正常显示,相对路径无法查找到文件位置,是因为 index.js 引入模块后,相对路径发生了变化,修改对应的路径 。

39938194180eece2afe6ab4cd8db70a4_1bbc6a04955a49f68dc741abc38f9631.png

10.图片动画并未出现,为什么呢?因为图片的渲染机制是直接更改到对应的大小,所以,我们需要保证心形在图片中占有的位置,使用截图工具截图后,终于出现了心形跳动的结果。


视频学习网站:

       鸿蒙2.x系统应用开发 前端基础入门教程-12集全完结_哔哩哔哩_bilibili

文档学习网站:

       技术胖-华为鸿蒙系统应用 OpenHarmony JS 前端开发 基础入门教程-完结



目录
相关文章
|
3天前
|
API 数据安全/隐私保护 UED
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
在掌握了鸿蒙系统的开发基础后,我挑战了蓝牙功能的开发。通过Bluetooth A2DP和Access API,实现了蓝牙音频流传输、设备连接和权限管理。具体步骤包括:理解API作用、配置环境与权限、扫描并连接设备、实现音频流控制及动态切换设备。最终,我构建了一个简单的蓝牙音频播放器,具备设备扫描、连接、音频播放与停止、切换输出设备等功能。这次开发让我对蓝牙技术有了更深的理解,也为未来的复杂项目打下了坚实的基础。
85 58
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
|
4天前
【HarmonyOS Next开发】:ListItemGroup使用
通过使用ListItemGroup和AlphabetIndexer两种类型组件,实现带标题分类和右侧导航栏的页面
89 61
|
1天前
|
API 索引
HarmonyOs开发:导航tabs组件封装与使用
主页的底部导航以及页面顶部的切换导航,无论哪个系统,哪个App,都是最常见的功能之一,虽然说在鸿蒙中有现成的组件tabs可以很快速的实现,但是在使用的时候,依然有几个潜在的问题存在,第一,当导航较少时,tabs是默认居中模式,目前无法进行居左,在有这样功能的时候,难以满足需求;第二,导航右侧需要展示按钮的时候,tabs也是无法满足的;除此之外,还有很多人都非常关心的问题,底部的指示器可以跟随页面的滑动而滑动;面对着种种问题的存在,系统的tabs改进之路仍然很艰巨。
HarmonyOs开发:导航tabs组件封装与使用
|
4天前
|
安全 数据安全/隐私保护
鸿蒙开发:一文了解软键盘相关
软键盘最主要的就是合理的进行避让,不能遮挡可输入组件,再有多个输入框的时候,需要动态的进行设置高度,这一点需要注意。
鸿蒙开发:一文了解软键盘相关
|
4天前
鸿蒙开发:一个轻盈的上拉下拉刷新组件
在和可滑动组件使用的时候,记得一定要和nestedScroll属性配合使用,用于解决滑动冲突,除此之外,还需要传递滑动组件的scroller属性,用于手势操作。
鸿蒙开发:一个轻盈的上拉下拉刷新组件
|
5天前
|
开发框架 前端开发 JavaScript
uniapp开发鸿蒙,是前端新出路吗?
相信不少前端从业者一听uniapp支持开发鸿蒙Next后非常振奋。猫林老师作为7年前端er也是非常激动,第一时间体验了下。在这里也给大家分享一下我的看法
42 17
|
2天前
|
存储 API 计算机视觉
自学记录HarmonyOS Next Image API 13:图像处理与传输的开发实践
在完成数字版权管理(DRM)项目后,我决定挑战HarmonyOS Next的图像处理功能,学习Image API和SendableImage API。这两个API支持图像加载、编辑、存储及跨设备发送共享。我计划开发一个简单的图像编辑与发送工具,实现图像裁剪、缩放及跨设备共享功能。通过研究,我深刻体会到HarmonyOS的强大设计,未来这些功能可应用于照片编辑、媒体共享等场景。如果你对图像处理感兴趣,不妨一起探索更多高级特性,共同进步。
29 11
|
2天前
|
开发框架 小程序 IDE
鸿蒙原生开发手记:05-开发之外的那些事
鸿蒙原生开发手记:05-开发之外的那些事
27 9
|
4天前
|
开发者
【HarmonyOS Next开发】用户文件访问
文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。 应用对用户文件的创建、访问、删除等行为,需要提前获取用户授权,或由用户操作完成。
25 10
|
4天前
|
存储 JSON 测试技术
【HarmonyOS Next开发】云开发-云数据库(二)
实现了云侧和端侧的云数据库创建、更新、修改等操作。这篇文章实现调用云函数对云数据库进行增删改查。
22 9

热门文章

最新文章