HarmonyOS鸿蒙Next中应用启动后,如何去除持续2秒左右闪逝的"白色主窗口+灰色窗口+黑色窗口”?
HarmonyOS鸿蒙Next中应用启动后,如何去除持续2秒左右闪逝的"白色主窗口+灰色窗口+黑色窗口”? 要开发了一个video应用,结果应用启动后,持续2秒左右闪现的"白色主窗口+灰色窗口+黑色窗口”,才显示期待的播放界面。
感觉好无语啊,我要的是应用启动后,直接进入期待的播放界面,而不是中间乱七八糟的无用窗口!
新建的project工程代码,不能做人性化点吗?应用启动后,乱七八糟的窗口切换,怎么好意思给用户用?
DevEco Studio 3.1 Release
Build Version: 3.1.0.500, built on April 28, 2023
project配置:Stage模型,API9
白色窗口
灰色窗口
黑色窗口
视频播放窗口
index.ets文件
import window from '@ohos.window';
// 测试本地视频及网络视频播放
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
controller: VideoController = new VideoController();
previewUris: Resource = $r('app.media.preview');
innerResource: string = 'https://boot-video.xuexi.cn/video/1006/p/f2bcd0fc1fa55c6e448ba1dd098e9ce3-3d432a53bcd64d8b80fa96e4a86cf5fe-2.mp4';
build() {
Row() {
Column() {
Video({
src: this.innerResource,
previewUri: this.previewUris,
controller: this.controller
})
.controls(false)
.objectFit(ImageFit.Contain)
.autoPlay(true)
}
.width('100%')
.height('100%')
}
.width('100%')
.height('100%')
}
}
EntryAbility.ts文件
import UIAbility from '@ohos.app.ability.UIAbility';
import hilog from '@ohos.hilog';
import window from '@ohos.window';
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}
onDestroy() {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
}
onWindowStageCreate(windowStage: window.WindowStage) {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
// 去状态栏、导航栏
windowStage.getMainWindow((err, data) => {
if (err.code) { return; }
data.setWindowSystemBarEnable([]);
});
windowStage.loadContent('pages/Index', (err, data) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
});
}
onWindowStageDestroy() {
// Main window is destroyed, release UI related resources
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
}
onForeground() {
// Ability has brought to foreground
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
}
onBackground() {
// Ability has back to background
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
}
}
更多关于HarmonyOS鸿蒙Next中应用启动后,如何去除持续2秒左右闪逝的"白色主窗口+灰色窗口+黑色窗口”?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,应用启动时出现的“白色主窗口+灰色窗口+黑色窗口”闪逝现象,通常是由于应用启动时的窗口初始化过程导致的。要去除这种现象,可以通过以下方式优化应用启动流程:
-
设置启动页主题:在
config.json
文件中,为应用设置一个启动页主题,避免系统默认的窗口背景色。可以在"abilities"
节点下,为"launchType"
为"standard"
的Ability配置"theme"
属性,指定一个自定义的启动页主题。 -
优化启动页布局:在启动页的布局文件中,使用与应用主界面一致的背景色或设计,避免出现明显的颜色切换。可以在
resources/base/layout
目录下,修改启动页的布局文件,确保背景色与主界面一致。 -
减少启动时间:通过优化应用启动逻辑,减少启动时间,缩短窗口初始化过程的可见时间。可以在
onStart
方法中,尽量减少耗时操作,确保应用快速进入主界面。 -
使用SplashScreen API:HarmonyOS提供了SplashScreen API,可以自定义启动页的显示内容和时间。通过调用
SplashScreen
相关接口,可以控制启动页的显示和隐藏,避免默认窗口背景色的出现。
通过以上方法,可以有效去除应用启动时的窗口闪逝现象,提升用户体验。
更多关于HarmonyOS鸿蒙Next中应用启动后,如何去除持续2秒左右闪逝的"白色主窗口+灰色窗口+黑色窗口”?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,应用启动时出现的“白色主窗口+灰色窗口+黑色窗口”闪屏现象,通常是由于应用启动时加载资源的过渡效果。
可以通过以下步骤优化:
- 设置启动主题:在
res/values/styles.xml
中定义一个启动主题,设置windowBackground
为应用的启动图或背景色。 - 应用启动主题:在
AndroidManifest.xml
中为启动Activity应用该主题。 - 异步加载资源:在
onCreate
方法中使用异步任务加载资源,避免阻塞UI线程。
通过这些步骤,可以有效减少或消除启动时的闪屏现象,提升用户体验。