我建议在测试下面的代码的时候自己先新建一个项目,测试下面代码,这样效果清楚点,避免因为粗心而导致效果达不到。
介绍:
最主要还是起到记笔记的作用,功能也比较简单。

第一步:

去除标题栏,在style.xml修改为如下情况。

android 修改状态栏时间 安卓修改状态栏_java


修改前的情况:

android 修改状态栏时间 安卓修改状态栏_java_02


修改后的情况:

android 修改状态栏时间 安卓修改状态栏_android 修改状态栏时间_03


可以看到标签栏不见了。(是不是感觉有点啰嗦,最主要是为了详细)。

第二步(重点,前面的一般都知道,现在才是重点,请认真阅读):
去除修改栏的颜色

Window window =this.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(ContextCompat.getColor(this,R.color.white));

android 修改状态栏时间 安卓修改状态栏_java_04


可以看到图中有一个window.setStatusBarColor有一个红色的地方。应该是版本的问题,使用Alter+enter键选择第一个,选择后会出现下图圈中的地方,那个红色就没了。

android 修改状态栏时间 安卓修改状态栏_UI_05


如下图红圈处,修改为你需要的颜色,这里我们修改的是白色,在color.xml文件中修改。

android 修改状态栏时间 安卓修改状态栏_java_06


android 修改状态栏时间 安卓修改状态栏_android 修改状态栏时间_07


然后我们先运行一下。

我们可以看到界面全部变为了白色,因为以前状态栏的图标为白色,因为我们这里设置的也是白色,所以我们会发现状态栏的图标会看不清,这样是不是很不好看,下面我就来说一下怎么修改图标的颜色。

android 修改状态栏时间 安卓修改状态栏_java_08


第三步:

修改状态栏图标的颜色

代码如下:

public void changStatusIconCollor(boolean setDark) {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
            View decorView = getWindow().getDecorView();
            if(decorView != null){
                int vis = decorView.getSystemUiVisibility();
                if(setDark){
                    vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
                } else{
                    vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
                }
                decorView.setSystemUiVisibility(vis);
            }
        }
    }

如图所示,写入这个方法,不过不要忘记调用这个方法哦,当true时设置状态栏图标颜色为黑色,false设置状态栏颜色为白色。

android 修改状态栏时间 安卓修改状态栏_java_09


效果如图所示:

android 修改状态栏时间 安卓修改状态栏_android 修改状态栏时间_10


这里效果就完成了扩展功能

先看一下刚刚我们写的代码实现的效果,可以看到没有达到我们想要的效果。这里我找了张效果比较明显的图(手动滑稽)这个测试可能,可以直接找图片试一下,我太啰嗦了,这里就不细说了。

android 修改状态栏时间 安卓修改状态栏_状态栏_11


首先,删除图中刚刚我们写的红圈中的代码

android 修改状态栏时间 安卓修改状态栏_状态栏_12


第二步,加入蓝圈中的代码

android 修改状态栏时间 安卓修改状态栏_UI_13


代码如下:

if (Build.VERSION.SDK_INT >= 21) {
            View decorView = getWindow().getDecorView();
            int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
            decorView.setSystemUiVisibility(option);
            getWindow().setNavigationBarColor(Color.TRANSPARENT);
            getWindow().setStatusBarColor(Color.TRANSPARENT);
        }

然后我们看一下效果。

android 修改状态栏时间 安卓修改状态栏_android_14


正好是我想要的效果,到这里我们就可以实现状态栏的修改了,是不是好看很多。