HarmonyOS鸿蒙Next实战卡片开发02
HarmonyOS鸿蒙Next实战卡片开发02
HarmonyOS Next 实战卡片开发 02
卡片开发中,还有一个难点是显示图片。其中分为显示本地图片和显示网络图片
显示本地图片
卡片可以显示本地图片,如存放在应用临时目录下的图片。路径比如
/data/app/el2/100/base/你的项目boundleName/temp/123.png
以下操作是为了得到一张 该目录下的图片做的准备工作
- 截图,得到一张相册图片
- 使用
PhotoViewPicker来选择要操作的图片 - 复制该图片到应用的临时目录下
- 传递给卡片组件
截图,得到一张相册图片
使用PhotoViewPicker来选择要操作的图片
在首页中,选择要操作的图片,获得该文件的uri地址
entry/src/main/ets/pages/Index.ets
复制该图片到应用的临时目录下
目标是将刚才的图片复制到应用的临时目录下,为最后的卡片显示本地图片做准备
传递给卡片组件
在当前的环节中,有一个需要特别需要注意的地方,就是构造合适的数据。比如以下的数据
entry/src/main/ets/entryformability/EntryFormAbility.ets
卡片需要 使用 'memory://+this.imgName' 来显示图片
完整效果
小结
- 传递给卡片组件
以上的前三步骤都是为了得到临时图片,实际开发中根据情况来获取即可
还有
- Image组件通过入参(memory://fileName)中的(memory://)标识来进行远端内存图片显示,其中fileName需要和EntryFormAbility传递对象(‘formImages’: {key: fd})中的key相对应。
- Image组件通过传入的参数是否有变化来决定是否刷新图片,因此EntryFormAbility每次传递过来的imgName都需要不同,连续传递两个相同的imgName时,图片不会刷新。
- 在卡片上展示的图片,大小需要控制在2MB以内。
显示网络图片
卡片中不支持直接显示网络图片如以下方式是不支持的
我们需要申请网络权限,然后将图片下载下来,最后再重复类似卡片显示本地图片的步骤即可
- 申请网络权限
entry/src/main/module.json5
- 设置网络图片地址
- 使用http开始下载
- 写入文件
- 返回给卡片组件
entry/src/main/ets/entryformability/EntryFormAbility.ets
更多关于HarmonyOS鸿蒙Next实战卡片开发02的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS鸿蒙Next实战卡片开发02的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
老师,请问一下,我现在通过触发Router或者Call事件,在我的EntryAbility中获取到了多个图片的网络地址(一次至少4个),我该如何把这些图片的网络地址传递给EntryFromAbility中,来进行下载。然后最终实现渲染到卡片上。因为我的用户操作会改变网络地址的排序,所以每次我都需要检测一次,最新的网络地址是否发生了改变。来决定要不要新的下载更新操作。
耗时操作不建议放在 EntryFromAbility 中,因为卡片生命周期在短暂停留 10s,可能就会自动释放。
网络地址改变是否更新 自己在 EntryAbility 中进行判断即可
https://developer.huawei.com/consumer/cn/forum/topic/0207165837073249234?fid=0109140870620153026 这个是刚更新的示例。
文末有码云代码链接,
HarmonyOS鸿蒙Next的卡片开发主要涉及使用ArkUI框架进行界面设计和逻辑处理。卡片是鸿蒙系统中的一种轻量级应用组件,可以快速展示信息或执行简单操作。开发时需使用DevEco Studio进行项目创建和代码编写。
在卡片开发中,首先需要在config.json中声明卡片的相关信息,包括卡片的名称、尺寸、图标等。然后通过ArkUI的组件库进行界面设计,常用组件包括Text、Image、Button等。卡片的样式和布局可以通过CSS进行控制。
卡片的逻辑处理通常放在Lifecycle回调中,如onCreate、onDestroy等。开发者可以在这些回调中初始化数据、处理用户交互等。卡片的动态更新可以通过postCardAction方法实现。
卡片的发布需要遵循鸿蒙的应用发布流程,包括签名、打包和上传到应用市场。最终用户可以在设备的主屏幕或负一屏中添加和管理卡片。
总的来说,HarmonyOS鸿蒙Next的卡片开发主要涉及界面设计、逻辑处理和发布流程,使用ArkUI框架和DevEco Studio进行开发。


