activity启动时的启动窗口(starting window)? 如何修改启动窗口的背景色?

发布时间:2024-12-06 16:31

冬季启动时,如果车窗有霜冻,应先清除再启动 #生活技巧# #汽车保养技巧# #汽车启动技巧#

[DESCRIPTION]

当用户从主菜单进入其他应用程序例如联系人、文件管理等时,可能会出现屏幕闪一下黑色的问题,这种现象在当前手机主题(Theme)是浅色(例如白色)的情况下比较明显。

[SOLUTION]

用户看到的“闪一下黑色”的画面,其实是应用程序的“启动窗口”(starting window)。启动窗口有以下特点:

1, 仅在要启动的activity在新的task或者新的process时,才可能显示启动窗口

2, 启动窗口先于activity窗口显示,当activity窗口的内容准备好之后,启动窗口就会被移除掉,show出真正的activity window

3, 启动窗口和普通的activity window类似,只是没有画任何内容,默认是一个黑色背景的窗口

正是由于启动窗口默认是黑色背景的,所以在当前的手机主题为浅色调的时候,就比较容易因为颜色的深浅对比而产生一种视觉上的闪动感。

针对以上情况的解决方法:

- 修改方案一:去掉启动窗口(不显示启动窗口)

- 修改方案二:修改启动窗口的背景颜色(修改成和主题颜色比较接近的颜色)

修改方案一:去掉启动窗口。做法如下:

修改ActivityStack.java文件,如下:

static final boolean SHOW_APP_STARTING_PREVIEW = true;  // 把这里的true修改成false

重新执行./makeMtk project_name mm frameworks/base/services/java,并把services.jar 重新push到手机并reboot

修改方案二:修改启动窗口的背景颜色。做法如下:

修改PhoneWindowManager.java中的方法addStartingWindow,如下:

public View addStartingWindow(IBinder appToken, String packageName, int theme,

            CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes,

            int icon, int windowFlags) {

. . . . . .

View view = win.getDecorView();

//mtk added begin

View.setBackgroundColor(...);     //把默认的黑色背景修改成和当前手机主题颜色相近的颜色

//mtk added end

. . . . . .

wm.addView(view, params);

. . . . . .

}

网址:activity启动时的启动窗口(starting window)? 如何修改启动窗口的背景色? https://www.yuejiaxmz.com/news/view/397265

相关内容

安卓笔记之隐式启动Activity篇
Activity以各种方式启动Activity、状态保存,完全退出等
清除所有的 Visual Studio 即时窗口命令
保护眼睛,改变电脑窗口颜色和Pdf背景颜色
2020新浪家居“品质门窗·助力美好生活”启动
MYSQL启动失败解决方法
如何在Win11中设置自动登录?Win11开启、禁用自动登录方法
自动启闭光控窗帘毕业论文设计
vscode为什么不出独立窗口
绿地之窗收纳盒、纽扣DIY亲子活动欢乐启动

随便看看