实现android4.4沉浸式标题栏

查阅各大网站,最后结合自己的时间,总结出了两种可行的方法

一.修改样式文件:

1.增加values-v19文件夹,再其中的styles.xml中加上:

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- toolbar(actionbar)颜色 -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <!-- 状态栏颜色 -->
        <item name="colorPrimaryDark">@color/colorPrimary</item>
        <!-- toolbar标题颜色 -->
        <item name="android:textColorPrimary">@color/white</item>
        <!-- 窗口的背景颜色 -->
        <item name="android:windowBackground">@color/colorPrimary</item>
        <!-- translucent system bars-->
        <item name="android:windowTranslucentStatus" >true</item>
        <item name="android:windowTranslucentNavigation">true</item>
    </style>

二.使用开源库

1.android studio中加入依赖:

compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3‘

2.在activity的onCreate()中调用下面方法:

   /**
     * Apply KitKat specific translucency.
     */
    private void applyKitKatTranslucency() {

        // KitKat translucent navigation/status bar.
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            setTranslucentStatus(true);
            SystemBarTintManager mTintManager = new SystemBarTintManager(this);
            mTintManager.setStatusBarTintEnabled(true);
            mTintManager.setNavigationBarTintEnabled(true);
            // mTintManager.setTintColor(0xF00099CC);
            mTintManager.setTintDrawable(UIElementsHelper
                    .getGeneralActionBarBackground(this));

        }

    }

    @TargetApi(19)
    private void setTranslucentStatus(boolean on) {
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
        if (on) {
            winParams.flags |= bits;
        } else {
            winParams.flags &= ~bits;
        }
        win.setAttributes(winParams);
    }

使用以上两个方法的最后,都要在主布局中加上:

android:fitsSystemWindows="true"

否则标题栏是白色的。

时间: 2024-08-13 13:16:32

实现android4.4沉浸式标题栏的相关文章

(原创)android4.4沉浸式标题栏

趁着清明节的闲工夫,把我的百年不升级一次系统的红米note手机升级到了miuiv6的系统,早就听说android4.4的系统有沉浸式标题栏,一直没有体验过.这次终于有机会了.看了几个手机上常用的应用都采用了这个效果,例如qq空间,wps.lbe等.自己也突然手痒痒了一下,想把当前正在做的项目也做成这种效果. 心动不如行动,废话不多说,直接开干就可以了: 我目前做的司信项目所有的activity都继承自一个titileactivity,这个titleactivity封装了一个导航栏,ui给他设计了

另外一种设置沉浸式标题栏的方式

今天又看到了另外一种设置沉浸式标题栏的方式,比上次写的那个使用主题,设置主题背景色的要好很多了.尤其是设置主题背景色后,程序从后台到前台ui界面没加载出来会显示出短暂的标题栏的颜色,因此设置主题背景颜色的方式还是有些缺陷. 废话不多说,我介绍的这个方法使用了小米的一个类:SystemBarTintManager 小米官网的地址 http://dev.xiaomi.com/doc/p=4769/index.html 经过测试在其他的手机上一样适用,只是那个设置标题栏字体颜色为黑色不能用而已. 1

Android4.4新特性 沉浸式模式

网上关于Android的沉浸模式,大多数讲的是状态栏与导航栏的透明与融合.查阅了一些资料以后,我想写一篇文章讲述一下沉浸模式的定义到底是什么? 参考资料:https://www.zhihu.com/question/24908570 <iPhone 人机界面指南>时经常出现一个词:“沉浸式程序”,从心理学角度来看,“沉浸”就是让人专注在当前的目标(由设计者营造)情境下感到愉悦和满足,而忘记真实世界的情境.实际上,从采取扁平化设计的iOS 7开始,苹果就开始采用了沉浸式程序的界面展示. 作为An

TitleLayout——一个Android轻松实现通用、标准、支持沉浸式状态栏的标题栏库

TitleLayout 多功能.通用的.可在布局或者使用Java代码实现标题栏:支持沉浸式状态栏,支持左侧返回按钮(不需要手动实现页面返回),左侧支持图片+文字.图片.文字:右侧支持图片.文字等. 堆码不易,star支持,万分感谢 点击查看效果图 欢迎关注: [Github 地址:https://github.com/SibreiaDante] [博客园:http://www.cnblogs.com/shen-hua/] Android开发常备工具整理中 Gradle依赖: compile 'c

8.Android 系统状态栏沉浸式/透明化解决方案

转载:http://www.jianshu.com/p/34a8b40b9308 前言 网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,统计提炼出来的相对靠谱的一套解决方案.如果是android大牛可以忽略本文,怕让您贱笑.只面向小白,帮助小白减少摸索的时间. 关于术语 网上有很多争论: 你这状态栏是变色龙状态栏,不是沉浸式的这应该是沉浸式的状态栏吧,系统栏与actionbar颜色设为一致 我只想说去你妹的,老子只要自己的app的状态栏能和主题

Android 沉浸式状态栏及悬浮效果

转载请注明出处 http://blog.csdn.net/xiaoyuan511 一.概述 现在大多数的电商APP的详情页长得几乎都差不多,几乎都是上面一个商品的图片,当你滑动的时候,会有Tab悬浮在上面,这样做用户体验确实不错,如果Tab滑上去,用户可能还需要滑下来,在来点击Tab,这样确实很麻烦.沉浸式状态栏那,郭霖说过谷歌并没有给出沉浸式状态栏这个明白,谷歌只说了沉浸式模式(Immersive Mode).不过沉浸式状态栏这个名字其实听不粗,随大众吧,但是Android的环境并没有IOS环

三步实现沉浸式状态栏(即状态栏与APP同色)

本篇实现的是沉浸式状态栏.先明确下概念,什么是状态栏?直接上图: 什么是沉浸式状态栏?示例图如下: 非沉浸式状态栏                                                                        沉浸式状态栏         其实,实质上就是使手机状态栏的颜色改变,使其成为自己想要的颜色.如果把它设置成和APP主色调相同,这样看上去就会好看许多.至于叫法,网上都这么叫,就不用深究它了.下面介绍如何实现,其实很简单,只需三步: 前提:建

Android项目实战(四十一):游戏和视频类型应用 状态栏沉浸式效果

需求:  手机app ,当打游戏或者全屏看视频的时候会发现这时候手机顶部的状态栏是不显示的,当我们从手机顶端向下进行滑动或手机底端向上滑动的时候,状态栏会显示出来,如果短暂的几秒时间没有操作的话,状态栏会再次隐藏. 实现代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main

沉浸式状态栏的最佳实现

最简洁的沉浸式状态栏的实现方式 1.在所需实现的Activity中加入代码 //透明状态栏 加入这行代码后,整个页面就会顶到状态栏的区域,占据状态栏. getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明导航栏 // getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 2.自定义标题栏,设置