HarmonyOS 鸿蒙Next EntryAbility中的onForeground方法中设置PrivacyMode无效,如何为退到后台的应用添加毛玻璃效果?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next EntryAbility中的onForeground方法中设置PrivacyMode无效,如何为退到后台的应用添加毛玻璃效果?

想要在应用退到后台时添加毛玻璃效果,在EntryAbility的onBackground方法中设置PrivacyMode,希望后台显示图1效果,实际显示图2效果。setPrivacyMode无效。  EntryAbility.ets:

onBackground(): void {

EntryAbility.windowStage.getMainWindow().then(win => {

try {

win.setWindowPrivacyMode(true);

} catch (err) {

QDLogUtils.error(err = ${err});

}

});

}

onForeground(): void {

EntryAbility.windowStage.getMainWindow().then(win => {

try {

win.setWindowPrivacyMode(false);

} catch (err) {

QDLogUtils.error(err = ${err});

}

});

}


更多关于HarmonyOS 鸿蒙Next EntryAbility中的onForeground方法中设置PrivacyMode无效,如何为退到后台的应用添加毛玻璃效果?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

当前实现毛玻璃效果可以通过监听页面状态,然后设置 .blur(this.val) 的方式实现,

该方法是需要页面单独处理,可以针对需要处理的页面去实现,麻烦测试一下是否满足业务需求

import { common } from '@kit.AbilityKit';

import { window } from '@kit.ArkUI';

@Entry

@Component

struct Index {

  @State message: string = 'Hello World';

  @State val:number = 0

  aboutToAppear(): void {

    (getContext() as common.UIAbilityContext).windowStage.on("windowStageEvent",(data)=>{

      if (data == 6) {

        this.val = 100

      }else if (data == 5){

        this.val = 0

      }

    })

  }

  build() {

    RelativeContainer() {

      Text(this.message)

        .id('HelloWorld')

        .fontSize(50)

        .fontWeight(FontWeight.Bold)

        .alignRules({

          center: { anchor: '__container__', align: VerticalAlign.Center },

          middle: { anchor: '__container__', align: HorizontalAlign.Center }

        })

    }

    .blur(this.val)

    .height('100%')

    .width('100%')

  }

}

更多关于HarmonyOS 鸿蒙Next EntryAbility中的onForeground方法中设置PrivacyMode无效,如何为退到后台的应用添加毛玻璃效果?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,Next EntryAbility的onForeground方法中设置PrivacyMode无效,可能是由于PrivacyMode主要用于控制应用界面的隐私显示模式,而非直接用于实现后台应用的视觉效果。

要为退到后台的应用添加毛玻璃效果,可以考虑以下方法:

  1. 使用自定义绘制:在应用的后台界面(如Service Ability或悬浮窗)中使用Canvas进行自定义绘制,实现毛玻璃效果。这需要开发者具备一定的图形绘制基础,利用鸿蒙提供的图形API进行效果实现。

  2. 利用窗口属性:检查并设置窗口的透明度、模糊等属性,看是否能达到类似毛玻璃的效果。这通常涉及修改窗口的LayerType或设置特定的WindowFlag。

  3. 后台任务与界面更新:确保后台任务在需要时能够正确更新界面,且这些更新能够被系统正确渲染。这可能需要处理好应用的生命周期和后台任务的调度。

请注意,实现后台毛玻璃效果可能受到系统权限和性能优化的限制。开发者需要确保应用符合鸿蒙系统的设计规范,并避免对用户体验造成负面影响。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部