全屏显示

全屏隐藏状态栏

Window window = getWindow();
int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏状态栏
window.setFlags(flag, flag); //全屏显示

注意:必须在setContentView之前执行,否则会报错。另外这种全屏显示方式的缺点是,会有隐藏标题栏和隐藏状态栏的动画过渡效果。

通过Theme控制

自定义全屏样式

res > values > themes.xml

<style name="AppTheme.ZGSBSPlayer.FullScreen" parent="Theme.AppCompat.NoActionBar"><item name="windowNoTitle">true</item><item name="android:windowFullscreen">true</item>
</style>

AndroidManifest.xml

<activity android:name=".vrplayer.VRPlayerActivity"android:theme="@style/AppTheme.ZGSBSPlayer.FullScreen">

调用系统全屏样式

可能会报错 You need to use a Theme.AppCompat theme (or descendant) with this activity

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

横竖屏切换

默认当用户手机重力感应器打开后,屏幕旋转时,Activity的生命周期会重新加载onDestroy-> onCreate即当前Activity被销毁了。
想要很好的支持屏幕旋转,建议在res中建立layout-land和layout-port两个文件夹,分别设定布局。

固定屏幕方向

AndroidManifest属性控制

设置AndroidManifest.xml对应的 activity 属性
默认的情况下,应用启动后,会固定为指定的屏幕方向,即使屏幕旋转,Activity也不会出现销毁或者转向等任何反应。

android:screenOrientation="landscape"  //横屏
android:screenOrientation="portrait"   //竖屏

代码中强制设置为横屏

@Override
protected void onResume() {if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}super.onResume();
}

强制开启屏幕旋转效果

如果手机关闭了重力感应器,或者同上activity中固定了屏幕方向,则默认情况下该Activity不会响应屏幕旋转事件。
如果在此情况下依然希望Activity响应屏幕旋转,则在onCreate()方法中添加代码

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);

屏幕旋转时防止Activity被销毁

AndroidManifest.xml

# 在相应的Activity声明中添加属性
android:configChanges="orientation|keyboard|keyboardHidden|screenSize|layoutDirection"
  • orientation #屏幕在纵向和横向间旋转
  • keyboardHidden #键盘显示或隐藏
  • keyboard #键盘类型变更如从9键盘切换到全键盘等
  • fontScale #用户变更了首选的字体大小
  • locale #用户选择了不同的语言设定
  • touchscreen或navigation #键盘或导航方式变化

以前只需要添加orientation后续需多加一个screenSize再后来需要添加上layoutDirection否则onConfigurationChanged不会被调用

如果缺少了keyboardHidden选项,不能防止Activity的销毁,并且在之后提到的onConfigurationChanged事件中只能捕获到坚屏变横屏的事件,不能捕获横屏变坚屏。

Android全屏显示和屏幕旋转的处理相关推荐

  1. Android全屏显示

    Android全屏显示 一.获取状态栏和导航条的高度: 1. 获取状态栏的高度: public int getStatusBarHeight() {Resources resources = mAct ...

  2. Android 全屏显示

    全屏显示主要是设置下面这两个属性: this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(Wind ...

  3. Android全屏显示隐藏状态栏

    1,概论 工作中经常需要用到全屏的页面,还要隐藏系统状态栏或沉浸式 2,设置全屏 2.1,设置有代码中设置,也有Mainfest.xml中设置theme 2.2,要是全局生效就在application ...

  4. Android 全屏和保持屏幕长亮

    方法一: // No Title bar requestWindowFeature(Window.FEATURE_NO_TITLE);//设置全屏 getWindow().setFlags(Windo ...

  5. Android隐藏标题栏,全屏显示

    Android 1.5测试通过 只需在以下代码中的,setCurrentView();之前调用即可 http://hi.baidu.com/wishwingliao/blog/item/38feb71 ...

  6. Galaxy S8及S+全屏显示适配

    Galaxy S8及S8+分别搭载"5.8"与"6.2"大屏,高达84%的屏幕占比为Galaxy S8及S8+在游戏娱乐.观看视频时带来深度沉浸式视觉体验.但是 ...

  7. android华为手机全屏显示

    解决android华为提示全屏显示 最近发现很多应用在第一次安装之后,都会提示一个 [ 全屏显示] .一看,好像也没啥,但是对开发应用的开发者来说.感觉被打了一巴掌一样.自己好好编码完成的应用.出来个 ...

  8. 随笔:说说第一次在android中嵌入非全屏显示的unity游戏时的坑之——界面切换时出现延迟/卡顿/花屏等现象解决方法

    One 最近对接了个unity3D做的小游戏到android项目中:游戏嵌入项目的界面且非全屏显示,项目几经波折,到我手上的时候,已经采用了在同一个activity中用两个View来分别显示andro ...

  9. 解决 Android APP 启动页白屏问题及如何实现全屏显示

    目录 一.白屏原因分析 二.解决白屏方案 方案一.提供 .png 背景图 方案二.使用 Layout-list 制作背景 1.  制作替代白屏的背景:bg_splash.xml 2. 将 bg_spl ...

最新文章

  1. .NET Core微服务系列基础文章索引(目录导航Final版)
  2. 学习OpenCV——SVM
  3. 用户交互php源码,phpWebSite ,容许个人和群组用户很容易地维护一个交互式社区驱动的站点.phpWebSite...
  4. Kubernetes 桌面客户端:Lens
  5. 利用SQL计算两个地理坐标(经纬度)之间的地表距离
  6. play!框架_在Play上使用twitter4j! 框架和安全社交很容易
  7. java中的lambda表达式学习
  8. 新手小白之学习python一飞冲天日志之—基本数据类型,条件控制语句
  9. HAProxy从零开始到掌握
  10. 谈谈jdmailgate邮件wg在企业中的角色扮演
  11. CAD线型设置:CAD软件中如何加粗曲线?
  12. IP雷达4.0+网络检测
  13. 关于RIGOL可编程电源连接说明(网口连接)
  14. 高德地图和百度地图数据下载
  15. mybatis中resultMap和resultType的详细用法
  16. 六行python代码的爱心曲线_6行python代码的爱心曲线
  17. 《权力的游戏》蕴含的管理经
  18. 商标注册计算机电源属于哪一类,开关插座属于哪一类商标?
  19. 西北大学电影专硕考研考情与难度、参考书及上岸前辈备考经验
  20. 从SDN鼻祖Nicira到VMware NSX 网络虚拟化平台的简单探讨

热门文章

  1. asp.net家校互动系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  2. 使用递归方法进行逆序输出字符串
  3. flex伸缩布局之九宫格
  4. Windows网络服务管理
  5. Windows添加路由时报错:请求的操作需要提升。
  6. 安装teamveaver时 报错 未安装软件包 libqt5qml5 记录一下
  7. Verilog语法规则
  8. ruby 生成哈希值_Ruby哈希值和可变的默认值
  9. ITween Stop
  10. 如何与他人说话? 说到点子上 第7期