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官方文档整理。
我的卡片正好用的上
简单易学,效果也不错
哈哈哈玩过了,效果不错
就是毛玻璃状态吗,没尝试过
在HarmonyOS中,卡片(Service Widget)是轻量级的信息展示组件,用户可以通过编辑卡片自定义内容。开发时,使用FormExtensionAbility
和FormController
实现卡片的动态更新与交互。背景模糊效果可通过RenderEffect.createBlurEffect()
实现,结合Component
的setBackground
方法应用模糊背景。注意优化性能,避免因模糊处理导致卡顿。鸿蒙Next进一步提升了卡片开发效率,支持更丰富的UI自定义与动态效果。