/** * 切换全屏,取消全屏 * * @param isChecked */private void switchFullScreen(boolean isChecked) {    if (isChecked) {        //切换到全屏模式        //添加一个全屏的标记        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);        //请求横屏        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);        //设置视频播放控件的布局的高度是match_parent        FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mVideoRootView.getLayoutParams();        //将默认的高度缓存下来        mVideoHeight = layoutParams.height;        layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT;        mVideoRootView.setLayoutParams(layoutParams);    } else {        //切换到默认模式        //清除全屏标记        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);        //请求纵屏        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);        //设置视频播放控件的布局的高度是200        FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mVideoRootView.getLayoutParams();        layoutParams.height = mVideoHeight;  //这里的单位是px        mVideoRootView.setLayoutParams(layoutParams);    }}

横竖屏切换时的生命周期总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
 

 

原文:Android 切换全屏,取消全屏

更多相关文章

  1. android获取屏幕长宽,status bar高度,设置全屏显示
  2. Android -- 状态栏高度
  3. 通过反射获取Android通知栏高度
  4. Android开发入门之Activity生命周期
  5. Android获取屏幕高度及宽度
  6. Android如何设置标题栏的高度
  7. Android中Fragment生命周期

随机推荐

  1. Java泛型应用之打造Android中ListView和G
  2. Android Data Storage --- Android 数据存储
  3. 浅谈GridView
  4. Android 前景
  5. 深入浅出RxJava (四:在Android中使用响应
  6. [Android]解决Fragment无法使用android:o
  7. 转载关于android高效显示图片的文章---Fr
  8. Android 标题栏沉浸式的实现
  9. 初入Android~系统化学习必备(转自http://b
  10. Android 源码目录 分析