Translucent Bar Android状态栏自定义颜色
Android4.4 一个很重要的改变就是透明系统栏.。新的系统栏是渐变透明的, 可以最大限度的允许屏幕显示更多内容, 也可以让系统栏和 Action Bar 融为一体, 仅仅留下最低限度的背景保护以免通知通知栏内容和 Action Bar 文字/图标难以识别。谷歌把这种效果称之为:Translucent Bar。
它的初始目的就是要最大化可视面积和淡化系统界面的存在感。其效果如图:

实现方法也很简单(仅限4.4以上的系统)
1、新建主题我这里分成了3个主题(4.4之前用的主题、4.4~5.0用的主题、5.0之后用的主题 <5.0之后必须指定颜色>)

styles(4.0之前)
<!-- 半透明的主题样式 -->
<style name="NavigationTransparent" parent="AppTheme">
<!-- Android 4.4 之前的版本跟随系统默认的样式-->
</style>
styles(4.4之后)
<!-- 半透明的主题样式 -->
<style name="NavigationTransparent" parent="AppTheme">
<!-- 状态栏 半透明 -->
<item name="android:windowTranslucentStatus">true</item>
<!-- 导航栏 半透明-->
<item name="android:windowTranslucentNavigation">true</item>
</style>
styles(5.0之后)
<!-- 半透明的主题样式 -->
<style name="NavigationTransparent" parent="AppTheme">
<!-- 导航栏 半透明-->
<item name="android:windowTranslucentNavigation">true</item>
<!-- 状态栏 半透明 -->
<item name="android:windowTranslucentStatus">true</item>
<!-- Android 5.0开始需要把颜色设置为透明。否状态栏会用系统默认的浅灰色 (Android 5.0以后支持修改颜色,需指定颜色)-->
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
2、布局文件里添加
android:fitsSystemWindows="true"
不设置这个属性的话,布局文件的内容会跑到状态栏中。
3、AndroidManifast.xml为该Activity 指定该主题样式。 上面的我们称之为 “透明状态栏” ====================================================================================================================================
============================================= 犹豫的分隔线=====================================================
==================================================================================================================================== 还有一种方式是大家比较常见的,状态栏的颜色和导航菜单的颜色一致 如图:

限5.0以上版本
1、我们在styles(5.0)中添加如下主题
<style name="NavigationChange" parent="AppTheme">
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
同时也应该在styles 里面添加相同主题,防止手机版本不够,主题报错。内容我们为空,调用系统默认颜色
styles
<!-- 可以改变的主题样式 -->
<style name="NavigationChange" parent="AppTheme"> </style>
2、我们自定义导航栏菜单
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@color/colorPrimaryDark">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="这是导航栏标题啊"
android:textSize="20sp"/> </RelativeLayout> <Button
android:id="@+id/jump"
android:layout_margin="20dp"
android:text="点击跳转到另一个Activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="jump"
/> </LinearLayout>
3、AndroidManifast.xml 文件中为Activity 指定该主题样式就好了。
补充:
- 两种方式其实都是改变状态栏的颜色,只是方式一的颜色为透明色。
- 方式一适用于app中没有导航栏,且整体的背景是一张图片的界面;
- 方式二适用于app中导航栏颜色为纯色的界面;
看到一张图很详细,粘贴一下。

Translucent Bar Android状态栏自定义颜色的更多相关文章
- Android Immersive Mode (沉浸模式) 还是 Translucent Bars (透明状态栏)
Immersive Mode (沉浸模式) 还是 Translucent Bars (透明状态栏) [科普]什么叫真正的“沉浸式”状态栏? 为什么在国内会有很多用户把「透明栏」(Translucent ...
- [Android] 状态栏的一些认识
前段时间遇到几个关于状态栏的问题,又了解了一下状态栏相关的知识,现在做一下记录. 本文地址:http://www.cnblogs.com/rossoneri/p/4316343.html 前戏和问题 ...
- Android状态栏颜色修改
android状态栏颜色修改 状态栏颜色的修改在4.4和5.x环境下分别有不同的方式,低于4.4以下是不能修改的. 5.x环境下 方式一,状态栏将显示为纯净的颜色,没有渐变效果 /** * 状 ...
- Android状态栏透明(沉浸式效果)
Android状态栏透明(沉浸式效果) 默认效果 沉浸式效果 方式一 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q487880 ...
- Android状态栏着色
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 状态栏着色,也就是我们经常听到的沉浸式状态栏,关于沉浸式的称呼网上也有很多吐槽的,这里就不做过多讨论了,以下我们统称状态栏着色,这样 ...
- android状态栏和NavigationBar的动态控制显示
项目在开发阅读器,阅读器对阅读界面的要求就是在工具栏不显示的状态下,ActionBar和NavigationBar都是不显示的,当工具栏显示时它们都出来,这就需要动态控制它们的显示与隐藏. 第一阶段: ...
- android 状态栏(StatusBar)
一.SystemUI 概述 自 android2.2 开始 , 原本存在与 framework-res.apk 中的状态栏和下拉通知栏界面控制被分割出一个单独的 apk 文件 , 命名为 System ...
- Android -- 状态栏高度
干货 Class<?> c = null; Object obj = null; Field field = null; int x = 0, sbar = 0; try { c = Cl ...
- 关于 Android 状态栏的适配总结
1.要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏: Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCR ...
随机推荐
- 享元模式(Flyweight Pattern)
一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非 ...
- js代码实现下拉菜单
效果 js代码: <script type="text/javascript"> function ShowSub(li) {//函数定义 var subMenu = ...
- Zend Studio 中安装emmet插件的方法
本人的Zend Studio版本是Zend Studio 10.0.0. 1. 打开Zend Studio,点击 Help --> Install New Software,如下图: 2. 在 ...
- Java--super关键字用法
看了马老师的视频,百度了一下,随即敲了一些代码,super是超人,超级的意思,层面上理解为父类 class Person { Person(){ System.out.prin ...
- 转义字符(\)对JavaScript中JSON.parse的影响概述
JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象,本文为大家介绍下转义字符对JSON.p ...
- Javascript技巧
Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如下: ...
- bzoj1553: XOR网络
Description 计算给定范围内有多少种输入可以使输出为1. 我们假设3 < n < 100, 3 < m < 3000,而且网络中的门是用1到m之间的数任意编号的. ...
- (AIDE)Android Eclipse JNI 调用 .so文件加载问题
背景:对于Android工程 Eclipse里编译好的.so文件放到 libs\armeabi下以后, 这样.so文件就可以打包到apk文件里,在apk装到手机上以后 在libs\armeabi下的. ...
- 开源共享一个训练好的中文词向量(语料是维基百科的内容,大概1G多一点)
使用gensim的word2vec训练了一个词向量. 语料是1G多的维基百科,感觉词向量的质量还不错,共享出来,希望对大家有用. 下载地址是: http://pan.baidu.com/s/1boPm ...
- 对c语言中malloc和free函数的理解
最近在复习c语言的时候再次用到了malloc函数和free函数,此处着讲解一下自己对这两个函数的理解和认识. 一. malloc函数和free函数的基本概念和基本的用法 对于malloc函数: 1. ...