透明状态栏

一、闪屏页

闪屏页就是app点击后打开的第一个activity,要求立即显示出页面图片;app打开页面默认会出现白板或黑板,这是因为没有设置

android:windowBackground 

窗口背景就是第一眼看到的颜色(白色或黑色);紧接着才会加载布局并展示出来。所以闪屏页一般没有layout布局文件,直接用style样式来完成:

<!--闪屏页面布局-->
    <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">@drawable/splash_bg</item>
        <item name="android:statusBarColor">@color/transparent</item>
    </style>

<activity
            android:name=".view.activity.SplashAct"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

在SplashAct.java的代码中无需写任何代码。

@drawable/splash_bg   是ui切的一张图片,设置给windowBackground属性即可;然后把statusBarColor设置为透明即可;

二、普通activity页面

建议不要使用style的形式;通常会写 BaseActivity ,并且在BaseActivity中设置好 AppBarLayout;

1.AppBarLayout 的最顶布局中,设置 android:fitsSystemWindows="true" 一路设置到希望显示背景颜色的地方;

2.在 BaseActivity 的 onCreate() 方法中写上如下代码:

//透明状态栏效果
        if (Build.VERSION.SDK_INT >= 21) {
            getWindow().setStatusBarColor(Color.TRANSPARENT);
            View decorView = getWindow().getDecorView();
            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
            decorView.setSystemUiVisibility(option);
        }

把statusBarColor设置为透明;

把DecorView的 systemUiVisibility 属性设置为:状态栏悬浮于Activity之上;

关于常量:

                   View.SYSTEM_UI_FLAG_LAYOUT_STABLE//保持整个View稳定, 常跟bar 悬浮, 隐藏共用, 使View不会因为SystemUI的变化而做layout
                   View.SYSTEM_UI_FLAG_LOW_PROFILE//隐藏状态栏图标
                   View.SYSTEM_UI_FLAG_FULLSCREEN//隐藏状态栏
                   View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//状态栏悬浮于activity之上
                   View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR//状态栏字体浅色
                   View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR//导航栏字体浅色
                   View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隐藏导航栏
                   View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//导航栏悬浮于activity之上
                   View.SYSTEM_UI_FLAG_IMMERSIVE//呼出隐藏的bar后不会再隐藏掉
                   View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//呼出隐藏的bar后会自动再隐藏掉

其中还有导航栏的设置,可以自行修改看看;

注意常量:

View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR//状态栏字体浅色
View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR//导航栏字体浅色

主要是把状态栏的导航栏的图标文字的颜色改为黑色;当你的页面适配为白色或浅白色图片时,本来的白色状态栏时间、电池图标等等可能不容易看出来,可以使用这个常量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值