android 修改状态栏颜色

沉浸式状态栏实现 文章目录透明状态栏隐藏导航栏真正的沉浸式模式 透明状态栏 新建一个项目,只放一张图片 可以看到 状态栏、ActionBar、底部导航栏都显示,现在修改 Activity 中代码 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat 阅读详情
AI摘要

本文介绍了Android系统中状态栏颜色的修改方法。在4.4和5.x环境下修改方式不同,低于4.4无法修改。5.x环境有三种修改方式,4.4环境下部分方式也适用,但显示效果有差异。此外,还提及了修改时存在的bug及解决办法,并给出参考资料和源代码。

android状态栏颜色修改
状态栏颜色的修改在4.4和5.x环境下分别有不同的方式,低于4.4以下是不能修改的。

5.x环境下

方式一,状态栏将显示为纯净的颜色,没有渐变效果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
  * 状态栏相关工具类
  *
  */
public  class  StatusBarUtils {
     public  static  void  setWindowStatusBarColor(Activity activity,  int  colorResId) {
         try  {
             if  (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                 Window window = activity.getWindow();
                 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                 window.setStatusBarColor(activity.getResources().getColor(colorResId));
                 //底部导航栏
                 //window.setNavigationBarColor(activity.getResources().getColor(colorResId));
             }
         }  catch  (Exception e) {
             e.printStackTrace();
         }
     }
     public  static  void  setWindowStatusBarColor(Dialog dialog,  int  colorResId) {
         try  {
             if  (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                 Window window = dialog.getWindow();
                 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                 window.setStatusBarColor(dialog.getContext().getResources().getColor(colorResId));
                 //底部导航栏
                 //window.setNavigationBarColor(activity.getResources().getColor(colorResId));
             }
         }  catch  (Exception e) {
             e.printStackTrace();
         }
     }
}

  

效果图如下:状态栏被改成 android.R.color.holo_blue_bright,标题栏颜色可以和状态栏一样,EditText的输入也没有受影响
 

ps: 如果顶部为渐变效果,可能是在主题中设置 windowTranslucentStatus=true 属性。
方式二:
通过Style来修改状态栏颜色。
1.设置 colorPrimary,colorPrimaryDark两个颜色。
1
2
3
4
< stylename ="AppTheme"parent="Theme.AppCompat.Light.NoActionBar">
      < itemname ="colorPrimary">@android:color/holo_blue_bright</ item >
      < itemname ="colorPrimaryDark">@android:color/holo_blue_bright</ item >
</ style >
2. AndroidManifest.xml文件中的targetSdkVersion必须设置在 21以上。
3.parent主题必须是 Theme.AppCompat开头,兼容包下的主题,所以必须一用v7包。
 
colorPrimary,colorPrimaryDark这两个属性是Material Design风格中规定的。具体位置如下图所示:
方式三:
1.在res/values-v19文件夹下添加styles.xml文件内容如下
1
2
3
< stylename ="AppTheme"parent="@style/BaseAppTheme">
     < itemname ="android:windowTranslucentStatus">true</ item >
</ style >
2.顶部标题的控件设置两个属
android:background="@android:color/holo_blue_bright"
android:fitsSystemWindows="true"
则状态栏会保持与设置fitsSystemWindow属性的控件的背景颜色一致。
4.4环境下
上面的方式三也适用4.4环境。不过4.4和5.x下显示的效果有差异。根据本人测试结果来看,不同的手机厂商对于这种情况下,状态栏有的是渐变,有的是添加了一层黑色半透明层。
存在bug及解决办法
修改windowTranslucentStatus/Navigation="true"。 会导致EditText输入时,即使使用了 adjustResize,软键盘也会挡住 EditText
解决办法参考:
其他参考资料:
原文参考 :   http://www.cnblogs.com/leon-hm/p/5131323.html
android 最顶部状态栏--文字颜色和背景颜色、透明状态栏、颜色代码color.xml android 顶部状态栏的设置 1、设置字体的颜色 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) 2、设置背景的颜色 <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 3、设置actionbar是否显示 在主题里加入: <item name="windowActionB 阅读详情

相关推荐

安卓4.4以上修改状态栏颜色

很多刚开始接触安卓的人,可能都比较喜欢安卓5.0的Material Design,然而七月官方的安卓版本份额显示:5.0以上的市场份额仍小于13%(全球范围内,中国更小),4.4+5.0+5.1的份额加起来却占了总份额的大多数,所以对安卓4.4以上版本进行material design标志性的“状态栏变色”受众还挺多的。 这篇博文能够且只能够教你“如何在安卓4.4以上的版本修改状态栏的颜色”

koche的博客 8914

安卓状态栏颜色设置

安卓并不提供修改状态栏字体的sdk,系统根据页面风格自动处理字体颜色(前提:需要设置成NoActionBar,否则状态栏字体不随页面风格改变),所以我们可以通过设置页面风格简介设置状态栏字体颜色

xiaokangss的博客 5794

Android隐藏状态栏和修改状态栏颜色_亲测有效

本文记录了隐藏状态栏和修改状态栏颜色以及电量、WiFi标志等内容的模式显示,亲测有效。

Hidanchaofan的博客 2266

Android状态栏颜色修改

android状态栏颜色修改 状态栏颜色的修改在4.4和5.x环境下分别有不同的方式,低于4.4以下是不能修改的。 5.x环境下 方式一,状态栏将显示为纯净的颜色,没有渐变效果 /*** 状态栏相关工具类**/public class StatusBarUtils {public static void setWindowStatusBarColor(Activity

leon_HM的博客 3360

安卓16(api36)状态栏颜色无法修改的解决方案

然后状态栏颜色可以直接用上面布局的FrameLayout背景色控制。如需调整状态栏文字颜色,使用原生api切换白色黑色即可。当然关于Activity的window,需要去除TRANSLATG,FULLSCREEN的flag。其中将标题布局包裹在一个FrameLayout里,然后主题里不进行任何状态栏颜色的配置。使用第三方库或其他安卓原生api获取状态栏高度,手动设置被包裹视图的marginTop。此操作适配安卓所有版本。,布局以及主题也无需设置。让状态栏由你自己来托管。

今天的风儿好耀眼的博客 1395

Android修改状态栏颜色完全指南

在这篇文章中,我们将讨论如何通过编程的方式修改Android应用程序中的状态栏颜色。我们将提供详细的步骤和相应的源代码示例,以便您能够轻松修改您的应用程序的状态栏颜色。在创建项目的过程中,您可以选择适合您的需求的项目模板,并按照向导的指示完成项目的创建。如果您希望状态栏是透明的,并且应用程序的内容可以显示在状态栏下方,您可以使用以下代码来实现此效果。通过上述简单的步骤,您可以轻松地修改Android应用程序的状态栏颜色。文件中修改主题样式,以及在主Activity文件中添加透明状态栏的代码。

CyberGenius的博客 2178

android 顶部时间电量栏更改颜色,教你修改安卓手机状态栏—可变换颜色

用户智能手机的用户都知道,手机的状态栏只拥有单调的颜色,白色或者黑色。今天小编就来教你如何修改安卓手机的状态栏,让你的手机状态栏变换成为各种独特的图片,并且可以变换颜色哦!准备事项:用户需要准备一张自己喜欢的图片,但是图片要求为:5*5 png格式。这里需要说明的是你的图片可以是任何的颜色,当然教程完毕,处理过后的状态栏取决于你选择图片的颜色和画面!很多手机用户不知道如何让图片为5*5 png格式...

weixin_36307713的博客 1831

Android状态栏背景颜色变更教程

本文还有配套的精品资源,点击获取 简介:本教程将指导开发者如何在Android应用中自定义状态栏背景颜色,主要针对API 21及以上版本。详细介绍了使用主题设置颜色、动态编程改变颜色、处理滑动效果,并提供了 SystemStatusDemo 示例项目以供参考。同时,强调了注意适配不同Android版本和使用 Android Navigation Com...

weixin_36073714的博客 4511

android 时钟字体颜色,安卓手机美化之修改状态栏日期时间颜色

安卓手机美化之修改状态栏日期时间颜色(2012-03-12 09:32:59)标签:安卓日期时间颜色修改手机博客杂谈依次打开system/framework/并找到severce.jar文件,把它提取出来并打开,找到里面的classes.dex,再把它提取出来并打开,找到statusbaricon.smali和StatusBarService.smali两个文件,路径是\classes\com\a...

weixin_36338765的博客 1949

LLaMA-Factory全面指南:从训练到部署

LLaMA-Factory项目是一个专注于大模型训练、微调、推理和部署的开源平台。其主要目标是提供一个全面且高效的解决方案,帮助研究人员和开发者快速实现大模型的定制化需求。简化大模型训练流程:通过提供一系列预设的训练脚本和参数配置,降低用户在训练大模型时的技术门槛,使得即使是初学者也能轻松上手。增强模型微调能力:支持多种微调方法,如LoRA、QLoRA等,使用户能够根据特定任务需求对模型进行精细调整,从而提升模型性能。优化推理和部署体验。

全世界的博客 1万+

如何在NVIDIA CX6 网卡和华为CE交换机上为RDMA协议使能DCQCN和PFC

【代码】如何在NVIDIA CX6 网卡和华为CE交换机上使能DCQCN和PFC。

Markchen7788的博客 5099

android 修改状态栏颜色和状态栏图标字体颜色

1.修改状态栏颜色,即修改application主题theme或者activity主题theme values/styles/ <!--状态栏颜色 样式 --> <style name="TranslucentTheme" parent="AppTheme"> </style> values-v19/styles <style n...

yangaiyu的博客 7367

群晖Git Server权限配置全攻略:如何让普通用户(非admin)也能安全提交代码?

本文详细解析了群晖Git Server权限配置方案,特别针对普通用户(非admin)安全提交代码的需求。通过SSH服务配置、精细化用户权限管理及仓库创建自动化脚本,实现在DS218+等群晖NAS设备上的高效代码协作,同时确保系统安全。

weixin_42528780的博客 466

Android 修改状态栏颜色

项目中碰到修改状态栏颜色的需求,做个记录 代码 需要修改的Activity,onCreate中增加 View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; decorView.setSystemUiVisibility(option); AndroidM...

NextWram 853

windows10家庭版输入loadrunner注册码时报“License security violation. Operation isnot allowed”的解决办法

有可能出现2个错误第一个可能是第二个可能是“License security violation. Operation isnot allowed”ok,在此我在百度找了很多方法,大部分的方法都是删除注册表,但我根本就找不到这个注册表,而后又是管理中心找本地用户和组,但我依旧找不到这个玩意,然后可能是windows10家庭版本来就没有这个。再然后又以管理员身份去运行填写,好的,依旧报错,依旧未解决...

qq_30990097的博客 2560

uniapp 使用摄像头 live-pusher (APP)

uniapp 中开发 app 时使用live-pusher踩过的坑

随身笔记 1万+

android状态栏颜色修改

android状态栏颜色修改

qq_29443203的博客 499

Android keymint(keymaster)一RKP

Android RKP

weixin_47139576的博客 1万+

Android修改状态栏颜色

Android修改状态栏颜色

MrYanXi的博客 549

【SOUND】Linux音频子系统ASoC的驱动框架总分析

ALSA系统在芯片(ASoC)层的总体项目目标是为嵌入式芯片处理器(例如PXA2XX,AU1X00,IMX等)和便携式音频编解码器提供更好的ALSA支持。 在进入ASoC子系统之前,内核对SoC音频有一些支持,但是它有一些局限性:ASoC层旨在解决这些问题并提供以下内容特征 :为了实现这一切,ASoC基本上将嵌入式音频系统分为多个可重复使用的组件驱动程序:另外,这里提下OSS(Open Sound System)这个基本被弃用的音频框架。 可以参考Linux OSS架构声卡驱动框架 2.3 ASoC重要

wang 恒 的博客 1784

【软考高项论文】论信息系统项目管理的干系人绩效域

例如,在处理与电信运营商合作铺设光纤网络的问题时,考虑到其在通信设施建设和运维方面的专业性和重要性,我们将之定位为高权力高利益的干系人,给予了高度关注和优先沟通。项目全程,我们对干系人绩效域的执行效果进行了定期检查和评估,通过定量与定性的数据收集,确认了项目在干系人管理上的成效,具体表现为:建立了稳固的工作关系网络,使干系人普遍认可项目目标;鉴于本项目牵涉到政府各级部门、企事业单位、市民团体、技术研发伙伴等多种类型的干系人,且干系人的诉求和影响力各异,因此,有序且持续的干系人参与管理显得尤为关键。

Programming Talk 1683

Android状态栏颜色怎么修改?

Android状态栏颜色怎么修改? Window window = getWindow(); window.setStatusBarColor(ContextCompat.getColor(this,R.color.colorPrimary)); 在onCreate()中插入上面两句话即可 ...

qq_41765030的博客 487

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android状态栏的沉浸(沉浸失效)、透明、修改背景颜色以及修改状态栏字体颜色

目录状态栏的沉浸修改状态栏背景颜色、字体颜色 状态栏的沉浸 这里我介绍的是我比较常用的一种方式,也是网上很多都有介绍的,不多说直接上代码 /** * 这个方法是控制布局控件是否顶在状态栏上(fitSystemWindows=true,避免布局控件顶在状态栏上)(itSystemWindows=true,布局控件顶在状态栏上) */ public static void s...

Lemon_wzq的博客 2138

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android设置状态栏字体深色,Android实现修改状态栏背景、字体和图标颜色的方法...

搜索热词前言:Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼.需求场景:当toolbar及状态栏需要为白色或浅色时(如简书),状态栏由于用的Light风格Theme,字体,图标也都是白色,会看不清.如果改变成黑色就很和谐了.一.修改状态栏颜色:传送门实现的效果:这种方法实现的状态栏变色,...

weixin_33248912的博客 2416

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android全面屏刘海屏适配,状态栏颜色修改,状态栏文字颜色修改

1.全屏显示 //状态栏颜色 implementation 'com.githang:status-bar-compat:0.7' override fun onCreate(savedInstanceState:Bundle?) { super.onCreate(savedInstanceState) if (fullScreen()) { // 延伸显示区域到刘海 val lp =this.window.attributes if (Build.VERSI...

weixin_55522643的博客 1222
上一篇: ubuntu adb 配置, genymotion 安装使用
下一篇: android 状态栏颜色修改
一朵红杏
博客等级 码龄12年 51粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值