HarmonyOS鸿蒙Next实战卡片开发02

HarmonyOS鸿蒙Next实战卡片开发02

HarmonyOS Next 实战卡片开发 02

卡片开发中,还有一个难点是显示图片。其中分为显示本地图片和显示网络图片

显示本地图片

卡片可以显示本地图片,如存放在应用临时目录下的图片。路径比如

/data/app/el2/100/base/你的项目boundleName/temp/123.png

以下操作是为了得到一张 该目录下的图片做的准备工作

  1. 截图,得到一张相册图片
  2. 使用PhotoViewPicker来选择要操作的图片
  3. 复制该图片到应用的临时目录下
  4. 传递给卡片组件

截图,得到一张相册图片

使用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以内。

显示网络图片

卡片中不支持直接显示网络图片如以下方式是不支持的

我们需要申请网络权限,然后将图片下载下来,最后再重复类似卡片显示本地图片的步骤即可

  1. 申请网络权限
entry/src/main/module.json5
  1. 设置网络图片地址
  2. 使用http开始下载
  3. 写入文件
  4. 返回给卡片组件
entry/src/main/ets/entryformability/EntryFormAbility.ets

更多关于HarmonyOS鸿蒙Next实战卡片开发02的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

更多关于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的组件库进行界面设计,常用组件包括TextImageButton等。卡片的样式和布局可以通过CSS进行控制。

卡片的逻辑处理通常放在Lifecycle回调中,如onCreateonDestroy等。开发者可以在这些回调中初始化数据、处理用户交互等。卡片的动态更新可以通过postCardAction方法实现。

卡片的发布需要遵循鸿蒙的应用发布流程,包括签名、打包和上传到应用市场。最终用户可以在设备的主屏幕或负一屏中添加和管理卡片。

总的来说,HarmonyOS鸿蒙Next的卡片开发主要涉及界面设计、逻辑处理和发布流程,使用ArkUI框架和DevEco Studio进行开发。

在HarmonyOS鸿蒙Next中,卡片开发是提升用户体验的关键。首先,通过@Entry@Component注解定义卡片的入口和组件。接着,使用ArkUI框架构建卡片布局,如ColumnRow等,结合TextImage等组件展示内容。通过@State管理卡片状态,实现动态更新。最后,利用@Ability@Action处理用户交互,如点击事件。确保卡片资源适配不同设备,优化性能与响应速度,为用户提供流畅的交互体验。

回到顶部