在全局样式(也就是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/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:background">@color/white</item>
</style>
上面的<item name="android:windowLightStatusBar">true</item>
就是使用亮色的状态栏,效果如下:

但是有的页面,我们需要变换颜色和图片的颜色一致,那怎么办,那就需要我们在设置视图之前做变换状态栏颜色的操作,比如使用蓝色
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之前使用,效果如下:

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