沉浸模式和透明状态栏笔记

原创 2016年08月29日 12:41:22

郭神又出老少咸宜的神文《Android状态栏微技巧,带你真正理解沉浸式模式》,文中,将流行的状态栏自定义颜色(包括透明效果)与沉浸式模式(Immersive Mode)两个概念区分开来,而且还分析和提供了实现二者效果的思路和代码。总结笔记如下图片是郭神文章里的。

沉浸式模式

这里写图片描述

1. Android 4.4及以上系统才支持沉浸式模式

2. 一般是用于游戏或者视频的应用内容全屏化界面显示效果,此时没有顶部显示网络电量和时间的StatueBar、没有ActionBar、也没有底部的NavigationBar;

3. 此模式在在StatueBar/NavigationBar附近做滑动拉出效果时,会以半透明覆盖形式出现StatueBar/NavigationBar,因此是不会影响全屏内容效果的大小,而且一段时间后会再次隐藏StatueBar/NavigationBar,恢复全屏效果。

4. 实现代码如下

public class Immersive ModeActivity extends AppCompatActivity {
    private View decorView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_immersive_mode);
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        if(!hasFocus || Build.VERSION.SDK_INT < 19) return;
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}

透明的状态栏和导航栏

这里写图片描述

1. Android 5.0及以上系统才支持透明状态栏效果

2. 应用内容是覆盖整个屏幕,包括StatueBar/NavigationBar的背景,获得同一的界面效果。

3. 实现代码如下:

public class TransparentBarActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_transparent_bar);

        //Android 5.0及以上系统才实现此功能.
        if(Build.VERSION.SDK_INT < 21) return;
        /*
        DecorView
              --> 设置系统UI可见性
              --> 应用的主体内容占用系统状态栏的空间, 两个Flag需要连用,再用一个隐藏导航栏Flag,表示主题内容占用导航栏控件
        */
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN
                 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
        //将状态栏和导航栏设置成透明色
        getWindow().setStatusBarColor(Color.TRANSPARENT);
        getWindow().setNavigationBarColor(Color.TRANSPARENT);
        //隐藏ActionBar
        getSupportActionBar().hide();
    }
}

Android实现QQ空间沉浸式状态栏,并且滑动ListView实现透明度变化

安卓4.4以后增加了可以改变状态蓝颜色的api,所以现在主流的APP基本上都会把状态栏修改成自己APP的主题颜色。那么接下来就先实现沉浸式状态栏吧,//透明状态栏 getWindow().a...
  • u010723811
  • u010723811
  • 2016年03月24日 15:38
  • 3207

Android透明状态栏与沉浸模式全解

Android透明状态栏与沉浸模式全解现在如今利用状态栏做文章的主要就是如下四种场景了,先上图 - 网易云音乐 状态栏与标题栏同色,无缝衔接 - 多看阅读 全屏沉浸阅读(视频,游戏同理) -...
  • tc_xingdechen
  • tc_xingdechen
  • 2017年04月03日 13:04
  • 520

沉浸透明状态栏

public class Main6Activity extends AppCompatActivity { @Override protected void onCreate(Bu...
  • Pusherson
  • Pusherson
  • 2017年06月07日 16:59
  • 79

Android4.4 全屏幕模式,沉浸模式 & 在应用内开启透明状态栏和透明虚拟按钮

众所周知,Android从4.4开始,就进入了沉浸模式,下面的链接有个视频可以观看一下。 沉浸模式 http://www.cnbeta.com/articles/265297.htm ...
  • song_shi_chao
  • song_shi_chao
  • 2014年03月06日 14:49
  • 6547

ToolBar沉浸式状态栏的兼容实现

更新3:薄荷Toolbar(ActionBar)的适配方案更新2:低版本实现Material Design 的两种方式 第三方库:com.readystatesoftware.systembarti...
  • afanyusong
  • afanyusong
  • 2016年03月17日 18:10
  • 3567

android沉浸(透明状态栏)

//透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明导航栏 getWindow(...
  • zengyinan
  • zengyinan
  • 2015年12月10日 11:46
  • 95

Android上透明状态栏,全屏显示以及沉浸模式

在Android上为了实现全屏显示,透明状态栏,沉浸模式等效果,往往需要我们掌握和系统UI显示隐藏相关的各种Flag。Android上API版本混乱,各种Flag林立。今天我们就来聊聊这些Flags。...
  • xiexiangyu92
  • xiexiangyu92
  • 2018年01月02日 20:16
  • 85

安卓沉浸透明状态栏导航栏

Android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加了透明状态栏与导航栏的功能,如图 使用这个特性能开发出很漂亮的UI,尤其对于 google 原生系统,屏幕下方的导航栏白白...
  • lx768863620
  • lx768863620
  • 2016年12月11日 10:24
  • 161

Android4.4沉浸状态栏结合CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout等使用详解

上一篇我们说了Android4.4沉浸状态栏的使用详解 Android4.4沉浸状态栏全解析 现在我们要把它结合CoordinatorLayout,AppBarLayout,Collapsing...
  • jeffleo
  • jeffleo
  • 2016年06月24日 23:07
  • 3903

android 透明状态栏,沉浸状态栏

转载自郭神:http://blog.csdn.net/guolin_blog/article/details/51763825 记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实...
  • JustPictureThis
  • JustPictureThis
  • 2016年08月23日 15:44
  • 128
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:沉浸模式和透明状态栏笔记
举报原因:
原因补充:

(最多只允许输入30个字)