android12 默认闪屏页透明化
两种方式:
- app入口activity 主题theme添加以下item
<!-- 闪屏页透明 跳转该activity相当于弹出dialog(悬浮窗口) -->
<item name="android:windowIsTranslucent">true</item>
注:
- 在styles.xml 入口activity的样式中添加如上item,即可透明化闪屏页
- 添加该属性后,会有副作用: A activity跳转到添加该属性的B应用(入口activity)时,B应用会以悬浮弹窗dialog的形式显示在A activity的上面,A activity 会走onPause(),不会走onStop()
- 判断diolog是否会对当前的activity生命周期造成影响:
- 由activity本身弹出的dialog不会走生命周期
- 弹出的主题是dialog的activity会走onPause()方法,不会走onStop()
- framework层: 在添加闪屏页view时将其隐藏或设置透明度为0
+++ b/frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java
@@ -320,6 +320,12 @@ public class StartingSurfaceDrawer {
// if view == null then creation of content view was failed.
if (contentView != null) {
try {
+ if (activityInfo.packageName.equals("com.demo.demo")){
+ contentView.setAlpha(0.0F);
+ contentView.setVisibility(View.INVISIBLE);
+ }
rootLayout.addView(contentView);
} catch (RuntimeException e) {
Slog.w(TAG, "failed set content view to starting window "