我这个人不喜欢废话。直接进入正题:首先必须是android api19以上,也就是android4.4版本以上才行。
![效果图](https://img-blog.csdn.net/20170419164557299?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjc2MzQ3OTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
第一步:在你的最外层布局,根布局加上如下属性
android:clipToPadding="true"
android:fitsSystemWindows="true"
android:background="@color/colorAccent"//这个就是你的状态栏颜色
第二步:在你的onCreate方法里面加上如下代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//判断sdk版本
// 透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
// 透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
}
第三部:去掉标题。在你的setContentView方法之前加上如下代码
requestWindowFeature(Window.FEATURE_NO_TITLE)
如果你的activity继承的AppCompatActivity,则无法去掉标题。听话孩纸,就继承Activity多好,乖。偏不?非要继承AppCompatActivity?真拿你没办法,那你在继续在onCreate方法里面加上如下代码即可。
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}
自此。效果应该实现了,其实,你也应该想到了并不是设置的状态栏的背景颜色,而是通过设置根布局的背景颜色从而达到设置状态栏颜色的效果。
注意:如果根布局中没有加那属性,就设置了后面的属性,那么,整个页面都会向上偏移一个状态栏的高度,即页面会填充状态栏。效果如下图
![这里写图片描述](https://img-blog.csdn.net/20170419170043490?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjc2MzQ3OTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这样的需求也是有的,就看你有没有碰到。