管理中心

如何解决启动页背景和startWindowIcon属性设置为同一张图时出现的闪屏问题

问题现象

如果启动页背景和module.json中startWindowIcon属性设置为同一张图,APP启动时相当于需要加载两张图,不能平滑过渡,会有闪屏现象。

背景知识

Image组件为图片组件,常用于在应用中显示图片,支持png、jpg、jpeg、bmp、svg、webp、gif和heif类型的图片格式。

解决方案

使用Image组件代替Column组件背景的方案,并设置图片加载方式为同步。

参考示例代码如下:

收起
自动换行
深色代码主题
复制
  1. @Entry
  2. @Component
  3. struct WhitePage {
  4. aboutToAppear(): void {
  5. setTimeout(() => {
  6. }, 10 * 1000);
  7. }
  8. build() {
  9. Stack() {
  10. Image($r('app.media.startIcon')) // 此图片仅作示例参考
  11. .width('50%')
  12. .height('50%')
  13. .opacity(0.2)
  14. .syncLoad(true); // 设置图片为同步加载
  15. Text('Hello World');
  16. }
  17. .width('100%')
  18. .height('100%');
  19. }
  20. }