HarmonyOS鸿蒙Next卡片编辑与背景模糊开发

HarmonyOS鸿蒙Next卡片编辑与背景模糊开发

一. 卡片编辑功能

卡片提供方提供一个卡片的编辑页面,允许从卡片跳转至编辑页面。

卡片提供方在配置文件config.json中添加参数“formConfigAbility”,配置参数信息的规则如下。

  • 配置该参数的值,导航到编辑页面的Page ability,格式如下:

    ability://单个ability名字
  • 如果不配置“formConfigAbility”参数,则无卡片编辑功能。

二. 卡片背景模糊

卡片可以在config.json中声明是否支持背景模糊。声明方式如下:

config.json的metaData中,在customizeData中增加一个name为needBlurBackgroundForLauncher的字符串类型的属性,value为“true”表示支持, 否则为不支持。

示例代码

{
  "forms": [
    {
      "name": "Form_JS_DEMO",
      "description": "it is js form",
      "type": "JS",
      "jsComponentName": "card",
      "colorMode": "auto",
      "isDefault": true,
      "updateEnabled": true,
      "scheduledUpdateTime": "10:30",
      "defaultDimension": "2*2",
      "supportDimensions": ["2*2", "2*4"],
      "metaData": {
        "customizeData": [
          {
            "name": "needBlurBackgroundForLauncher",
            "value": "true"
          }
        ]
      }
    }
  ]
}

卡片开发者可以从onCreateForm的回调中,获取是否支持背景模糊:

protected ProviderFormInfo onCreateForm(Intent intent) {
  ......
  // 1. 获取自定义数据
  IntentParams intentParams = intent.getParam(AbilitySlice.PARAM_FORM_CUSTOMIZE_KEY);

  // 2. 从intentParams中获取是否支持背景模糊
  boolean isSupport = (boolean) intentParams.getParam("fa_card_background_blur_support");
  ......
}

说明

背景模糊限制:

  • 当前仅JS卡片支持背景模糊。
  • 卡片背景模糊需要硬件支持,目前支持搭载麒麟9000或高通骁龙865及以上型号CPU的机型。使用其他机型可能无法预览到背景模糊效果。

本文主要根据HarmonyOS官方文档整理。

10 回复

前几年很火的毛玻璃吗

更多关于HarmonyOS鸿蒙Next卡片编辑与背景模糊开发的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我的卡片正好用的上

简单易学,效果也不错

哈哈哈玩过了,效果不错

就是毛玻璃状态吗,没尝试过

直接可以试一下效果就出来了

能做成透明的吗,想咨询下

系统应该自带那种透明的效果的吧,我理解非毛玻璃就相当于透明的了。

看到几次相关的求助了,楼主及时雨啊

在HarmonyOS中,卡片(Service Widget)是轻量级的信息展示组件,用户可以通过编辑卡片自定义内容。开发时,使用FormExtensionAbilityFormController实现卡片的动态更新与交互。背景模糊效果可通过RenderEffect.createBlurEffect()实现,结合ComponentsetBackground方法应用模糊背景。注意优化性能,避免因模糊处理导致卡顿。鸿蒙Next进一步提升了卡片开发效率,支持更丰富的UI自定义与动态效果。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!