Android状态栏需要白底黑字

在全局样式(也就是AndroidManifest.xml中的application指定的theme里面设置)

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/white</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowLightStatusBar">true</item>
    </style>

上面的<item name="android:windowLightStatusBar">true</item>就是使用亮色的状态栏,需要在values-v23中使用,电量栏文字就变黑了,电量栏背景用的colorPrimaryDark,所以我们使用white,效果如下:

image.png

但是有的页面,我们需要变换颜色和图片的颜色一致,那怎么办,那就需要我们在设置视图之前做变换状态栏颜色的操作,比如使用蓝色

public class SplashActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BarUtils.setStatusBarColor(this, ContextCompat.getColor(this,R.color.blue));
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(SplashActivity.this, MainActivity.class));
                finish();
                overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
            }
        }, 2000);
    }
}

其中BarUtils.setStatusBarColor(this, ContextCompat.getColor(this,R.color.blue));要在setContentView之前使用,效果如下:

image.png

这样图片和状态栏合为一体,看起来才漂亮。

想想以前设置个电量栏好困难,现在好了,别人的拿来用,别问我为什么,因为我懒:https://github.com/gyf-dev/ImmersionBar

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容