android 任务栏状态栏,最详细android改变状态栏(任务栏)的颜色,实现图片进入任务栏的效果?...

我建议在测试下面的代码的时候自己先新建一个项目,测试下面代码,这样效果清楚点,避免因为粗心而导致效果达不到。

介绍:

最主要还是起到记笔记的作用,功能也比较简单。

第一步:

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

90394f828dc6

在这里插入图片描述

修改前的情况:

90394f828dc6

在这里插入图片描述

修改后的情况:

90394f828dc6

在这里插入图片描述

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

第二步(重点,前面的一般都知道,现在才是重点,请认真阅读):

去除修改栏的颜色

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));

90394f828dc6

在这里插入图片描述

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

90394f828dc6

在这里插入图片描述

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

90394f828dc6

在这里插入图片描述

90394f828dc6

在这里插入图片描述

然后我们先运行一下。

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

90394f828dc6

在这里插入图片描述

第三步:

修改状态栏图标的颜色

代码如下:

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设置状态栏颜色为白色。

90394f828dc6

在这里插入图片描述

效果如图所示:

90394f828dc6

在这里插入图片描述

这里效果就完成了

扩展功能

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

90394f828dc6

在这里插入图片描述

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

90394f828dc6

在这里插入图片描述

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

90394f828dc6

在这里插入图片描述

代码如下:

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);

}

然后我们看一下效果。

90394f828dc6

在这里插入图片描述

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值