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

5.x环境下

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

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

ps:如果顶部为渐变效果,可能是在主题中设置windowTranslucentStatus=true属性。
方式二:
通过Style来修改状态栏颜色。
1.设置 colorPrimary,colorPrimaryDark两个颜色。
  1. <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
  2. <item name="colorPrimary">@android:color/holo_blue_bright</item>
  3. <item name="colorPrimaryDark">@android:color/holo_blue_bright</item>
  4. </style>
2. AndroidManifest.xml文件中的targetSdkVersion必须设置在21以上。
3.parent主题必须是Theme.AppCompat开头,兼容包下的主题,所以必须一用v7包。
colorPrimary,colorPrimaryDark这两个属性是Material Design风格中规定的。具体位置如下图所示:
方式三:
1.在res/values-v19文件夹下添加styles.xml文件内容如下
  1. <style name="AppTheme" parent="@style/BaseAppTheme">
  2. <item name="android:windowTranslucentStatus">true</item>
  3. </style>
2.顶部标题的控件设置两个属性
  1. android:background="@android:color/holo_blue_bright"
  2. android:fitsSystemWindows="true"
则状态栏会保持与设置fitsSystemWindow属性的控件的背景颜色一致。

4.4环境下
上面的方式三也适用4.4环境。不过4.4和5.x下显示的效果有差异。根据本人测试结果来看,不同的手机厂商对于这种情况下,状态栏有的是渐变,有的是添加了一层黑色半透明层。
存在bug及解决办法
修改windowTranslucentStatus/Navigation="true"。会导致EditText输入时,即使使用了 adjustResize,软键盘也会挡住EditText
解决办法参考:
https://www.zhihu.com/question/31468556/answer/52136849?utm_source=weibo&utm_medium=weibo_share&utm_content=share_answer&utm_campaign=share_button
其他参考资料:
http://blog.csdn.net/lmj623565791/article/details/48649563
http://www.bkjia.com/Androidjc/971024.html
http://blog.sina.com.cn/s/blog_6e334dc70102ve7d.html
源代码:https://github.com/leon-HM/StatusBar

Android状态栏颜色修改相关推荐

  1. android 颜色0x00,Android 状态栏颜色兼容方案

    一.需求 由于Android系统碎片化比较严重,因此为了统一调整状态栏颜色,因此实现一个工具类相当必要. 注意:本类支持Android 5.0 以上的版本,android 5.0之前的兼容性太差,因此 ...

  2. android充电指示灯颜色修改

    文件位置:frameworks\base\services\core\java\com\android\server\BatteryService.java /*** Synchronize on B ...

  3. Android如何设置顶部状态栏颜色(主题)

    在Android中我们经常需要设置屏幕顶部状态栏的主题和应用页面保持同一风格,本文介绍几种常用的设置方案: 状态栏将显示为纯净的颜色,没有渐变效果 ​ /** * 状态栏相关工具类 * */ publ ...

  4. APP动态修改状态栏颜色

    对安卓应用开发者,UI部分最难搞的就是APP顶部的状态栏. 一致的APP风格,状态栏仅仅需要设置一种颜色. 安卓全局颜色设置 单一APP状态栏 很显然,我们只要将AppTheme中colorPrima ...

  5. Android设置顶部状态栏颜色

    参考博客:https://blog.csdn.net/qq_36982160/article/details/82350993 一张图了解android状态栏颜色划分 方法一:通过代码设置状态栏颜色 ...

  6. Android 详细讲解修改app状态栏颜色

    相信很多人在开发app的时候,都会碰到xml中header的状态栏颜色和系统手机自带的颜色(顶部手机状态条)不一致,查了好多资料:例如:去掉状态栏以及全屏显示等,可以参考下面这篇文章 Android简 ...

  7. php视频直播系统源码Android 修改状态栏颜色 白色、透明色

    封装工具类StatusBarUtils public class StatusBarUtils {/*** 修改状态栏为全透明** @param activity*/@TargetApi(19)pub ...

  8. android开发 修改标题栏背景_android开发修改状态栏背景色和图标颜色

    修改状态栏背景色和图标颜色 默认是黑底白字的,现在要改为白底黑字的 先看下效果图: Screenshot_2018-01-03-19-20-27-797_com.yiban1314..png 1.状态 ...

  9. Android界面全屏适配7.0、动态修改状态栏颜色、浅色状态栏深色字体

    https://www.jianshu.com/p/e93787e23d3b 在需要置顶的界面添加主题TopTheme 为了适配要创建多个value文件夹,名称不能错 styles.xml <! ...

最新文章

  1. 神策 FM:从 IT 到 DT,To B 市场走到了哪一步?
  2. 计算机专业词典_好书优选:实用英汉汉英计算机词典
  3. vsftp匿名访问目录_VSFTP本地用户目录跟匿名用户目录肿么修改?
  4. Linux 网络层收发包流程及 Netfilter 框架浅析
  5. LeetCode 1807. 替换字符串中的括号内容(哈希map)
  6. Weblogic11g安装部署-winserver篇
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的养老院管理系统
  8. jquery href属性和click事件冲突
  9. led数字字体_led电视质量排行榜
  10. 梯形图请用c语言,简单使用C语言写梯形图精简V2.0.pdf
  11. [20][01][02] 安全认证
  12. 技能竞赛中职计算机课程建设,从计算机辅助设计(工业产品CAD)竞赛谈中职学校计算机应用专业建设.pdf...
  13. STM32_4键位触摸按键实现单击、双击、三击、长按1s、长按2s以上每隔200ms、左右滑动1-3个键位等多功能程序
  14. 导出自定义Excel表格(纯前端实现)
  15. 基于大中台架构的电商业务中台最佳实践之一:业务中台总体架构介绍
  16. Linux Suse修改主机名hostname
  17. oracle官方网址
  18. android串口通信——身份证识别器
  19. java json导入excel_java 导入json生成excel
  20. java 中几种常用数据结构

热门文章

  1. vs 中大括号之间垂直虚线显示
  2. (二)阅读器客户端开发实战_需求阐述
  3. Virtual Earth API 在指定zoomLevel添加自定义图层
  4. php 怎么分布式,php分布式怎么部署
  5. python中不可不知的一个重要的集合模块
  6. 单片机怎么学?新手怎么快速学会单片机?
  7. 单片机原理,单片机能做什么?
  8. mysql经典45道题_MySQL45道面试题及答案
  9. mysql 中文搜索插件_支持中文的MySQL 5.1+ 全文检索分词插件
  10. HDU6141(最小树形图)