文档章节

当 Activity 以全屏模式运行时,状态栏的出现与隐藏

Jamsm
 Jamsm
发布于 2016/02/03 11:17
字数 339
阅读 2841
收藏 2

1.要activity的

setContentView(R.layout.video_main);

2.之前加上

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);


3.再用

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//显示状态栏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏


但是,我发现用上面那(2的)两句话,把我videoview中用的mediacoontroller的进度条给屏蔽了

所以,可以把那两句话改用

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

我用的是viewpager,中间页里放了videoview,所以会发现,videoview上显示正常了,但是左右两页显示不正常了

可以加上

    //显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)  

   

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);


所以可以在监听滑到第几页

@Override
public void onPageSelected(int arg0) {
    if (arg0 == 0) {
      getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
   }else if (arg0 == 2){
      getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
   }else{
       getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
      
      new Handler().postDelayed(new Runnable() {
           @Override
           public void run() {
           getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
           }
         },1000);
       }  
   }

补充:透明任务栏

在View中添加定义了两个Flag。
     // 完全透明任务栏
     public static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS_BAR = 
0x00000010;
     //半透明任务栏
     public static final int SYSTEM_UI_FLAG_TRANSLUCENT_STATUS_BAR = 
0x00000020;

有些应用需要设置的时候,在需要的UI界面设置:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS_BAR);
应用退出无需做任何处理,系统会恢复默认。

© 著作权归作者所有

Jamsm
粉丝 6
博文 75
码字总数 10707
作品 0
南京
私信 提问
加载中

评论(1)

j376787348
j376787348
好像全屏没有任何效果
动态显示和隐藏状态栏(包括底部虚拟按键)

小米Launcher有一个细节上的功能效果:在长按桌面应用图标时,会隐藏状态栏,然后在状态栏原有的布局上显示卸载或删除的操作栏。放手后,操作栏隐藏,状态栏显示出来。也就是说,这个过程是涉...

不正经啊不正经
2015/07/29
0
1
Android setSystemUiVisibility详解

简介 本文主要讲解setSystemUiVisibility方法中的参数各个属性标志对应的用法和实际效果。主要讲解的标志有: SYSTEMUIFLAGLOWPROFILE SYSTEMUIFLAGHIDENAVIGATION SYSTEMUIFLAG_FULLSCREEN ...

丁佳辉
01/03
0
0
Android全屏显示的两种方式

一 直接在AndroidManifest.xml文件中设定Activity主题为全屏模式 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 例如:在NewGame视图中,全屏显示方法如下: 二 在代码中实现...

鉴客
2012/03/09
96
0
Android全屏显示的两种方式

一 直接在AndroidManifest.xml文件中设定Activity主题为全屏模式 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 例如:在NewGame视图中,全屏显示方法如下: 二 在代码中实现...

晨曦之光
2012/03/01
265
0
Android全屏显示的两种方式

一 直接在AndroidManifest.xml文件中设定Activity主题为全屏模式 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 例如:在NewGame视图中,全屏显示方法如下: 二 在代码中实现...

鉴客
2011/12/03
519
0

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
5
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
5
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
15
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部