原文:

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

需求:

手机app ,当打游戏或者全屏看视频的时候会发现这时候手机顶部的状态栏是不显示的,当我们从手机顶端向下进行滑动或手机底端向上滑动的时候,状态栏会显示出来,如果短暂的几秒时间没有操作的话,状态栏会再次隐藏。

实现代码:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public void onWindowFocusChanged(boolean hasFocus) {

super.onWindowFocusChanged(hasFocus);

if (hasFocus && Build.VERSION.SDK_INT >= 19) { // 如果有焦点,说明当前与用户交互 并且SDK_INT>=19 只有Android4.4+才支持沉浸式效果

View decorView = getWindow().getDecorView();

decorView.setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_FULLSCREEN

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

}

}

效果:

代码解释:

1、 onWindowFocusChanged(boolean hasFocus) 方法

Activity生命周期,可以理解为走到这个方法的时候,activity才是真正意义上的显示/消失在交互层。

当activity显示在栈顶,和用户交互的时候,是有焦点的,hasFocus 为true当activity退出栈顶,不和用户交互的时候,是没有焦点的,hasFocus 为false

2、getWindow.getDecorView()方法  , 获取Window界面最顶层View

一、DecorView为整个Window界面的最顶层View。

二、DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。

三、LinearLayout里有两个FrameLayout子元素。

(20)为标题栏显示界面。只有一个TextView显示应用的名称。也可以自定义标题栏,载入后的自定义标题栏View将加入FrameLayout中。

(21)为内容栏显示界面。就是setContentView()方法载入的布局界面,加入其中。

注:

和Activity全屏显示的区别在于,如果手机有虚拟导航栏(即虚拟后退、home键),则全屏会一直显示,而上述方法,导航栏和状态栏同步显示,上述需求则用全屏实现效果不对。

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

  1. 视频教程-PowerPoint项目实战从入门到精通视频课程(兼容2007、2010、2013、2016版本)-Office/WPS

    PowerPoint项目实战从入门到精通视频课程(兼容2007.2010.2013.2016版本) 有十年的开发经验和十年的培训经验,熟悉以下技术: 开源技术:struts2.hibernate.my ...

  2. 5G 时代的 Android App 开发入门与项目实战

    随着移动互联网的持续发展,Android系统从智能手机逐步拓展到平板电脑.智能电视.车载大屏.智能家居.智能手表等诸多设备,Android开发依然是前景可期的IT岗位. 当然,整个社会正在迈向5G时代 ...

  3. Android零基础开发到项目实战

    Android零基础开发到项目实战(目录) 前言:本教程适合零基础学习安卓开发的伙伴,下面是目录,本博主会每天定时更新每一章节的教程,未完..... 一.Java基础阶段 day01_Java语言概述 ...

  4. 《Android App开发进阶与项目实战》出版后记

    <Android App开发入门与项目实战>刚写完,我马上着手编写它的姊妹篇<Android App开发进阶与项目实战>,因为开发入门一书比较基础,还需要一本讲解高级开发与新技 ...

  5. 《Android App开发入门与项目实战》出版后记

    <Android Studio开发实战:从零基础到App上线>自面世以来,承蒙众多朋友的抬爱,该书一直保持不错的销量,其中第一版的出货量突破一万,第二版的出货量即将突破两万.对于一个程序员 ...

  6. 送书啦~《Android App开发进阶与项目实战》

    双十一刚结束,受我的编辑王老师所托,帮忙宣传<Android App开发进阶与项目实战>并赠送五本新书.该书介绍了很多新的技术,包括人工智能相关的. 1融合众多前沿技术 展现人工智能时代A ...

  7. 《Android App开发进阶与项目实战》资源下载和内容勘误

    资源下载 下面是<Android App开发进阶与项目实战>一书用到的工具和代码资源: 1.本书使用的Android Studio版本为4.2,最新的安装包可前往Android官网页面下载 ...

  8. flutter 项目实战四 列表数据展示

    本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用. 逛丢官方网址:https://guangdiu.com/ flutter windows开发环境设置 flutter 项目实战 ...

  9. 视频教程-微信小程序项目实战之我画你猜视频课程-微信开发

    微信小程序项目实战之我画你猜视频课程 精通PHP软件开发和WEB前端开发技术,熟悉PHP.Java.Javascript.HTML等语言,熟悉HTTP协议及W3C相关互联网规范,曾在山西某知名公司担任 ...

最新文章

  1. 表情的机器自动识别(有图有真相)
  2. serlvert jsp mysql_JAVA基础:Java多语言编码问题解析(2)
  3. 查找 framework 文件中是否包含 WKWebView
  4. IDC最新报告:阿里语音AI登顶中国No.1
  5. vba 指定列后插入列_如何用【VBA】快速批量提取多个工作表名称?
  6. 让VS Code 支持 Jupyter Notebook
  7. 【渝粤教育】电大中专电商运营实操 (25)作业 题库
  8. nginx 一个请求发给多台机器_一个机器人可以同时为多台数控机床上下料吗?东智力衡...
  9. St_geometry 初始用
  10. java jtextfield 居中_有什么办法可以使JFrame的中心居中吗? - java
  11. Machine Learning Basics(要点)
  12. Magnification API-Windows放大镜
  13. LSB信息隐藏的卡方分析
  14. 计算机及网络方面的杂志,计算机类省级期刊
  15. matplotlib - spines 设置
  16. 公司倒闭,新的开始,是好是坏全然不知
  17. 黑马程序员_网络电视用中国电信路由器不能联网的问题
  18. 计算机组成原理5章课件,计算机组成原理第5章存储器课件.ppt
  19. MIT_BIH数据库介绍
  20. c语言佮保留俩位小数,阅读语言论文,关于性阅读障碍儿童词汇识别中字形信息作用相关参考文献资料-免费论文范文...

热门文章

  1. 介绍最新大片——程序员必看!
  2. Android中service应用
  3. 伯克利提出AdaSearch:一种用于自适应搜索的逐步消除方法
  4. Jquery DataTable控制显示列,导出EXCEL
  5. SharePoint 2013 中如何使用Silverlight
  6. sqlplus column命令用法
  7. 备忘录模式(Memento)的原版与简化版实现
  8. python组合类型有哪三种_Python基础语法三组合数据类型
  9. 怎样使用计算机操作,怎么使用键盘快捷键操作电脑
  10. Java - HtmlEmail 邮件发送