Android 切换全屏,取消全屏

你的名字 2022-06-13 04:12 349阅读 0赞

切换全屏,取消全屏

  1. /**
  2. * 切换全屏,取消全屏
  3. *
  4. * @param isChecked
  5. */
  6. private void switchFullScreen(boolean isChecked) {
  7. if (isChecked) {
  8. //切换到全屏模式
  9. //添加一个全屏的标记
  10. getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  11. //请求横屏
  12. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  13. //设置视频播放控件的布局的高度是match_parent
  14. FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mVideoRootView.getLayoutParams();
  15. //将默认的高度缓存下来
  16. mVideoHeight = layoutParams.height;
  17. layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT;
  18. mVideoRootView.setLayoutParams(layoutParams);
  19. } else {
  20. //切换到默认模式
  21. //清除全屏标记
  22. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  23. //请求纵屏
  24. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  25. //设置视频播放控件的布局的高度是200
  26. FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mVideoRootView.getLayoutParams();
  27. layoutParams.height = mVideoHeight; //这里的单位是px
  28. mVideoRootView.setLayoutParams(layoutParams);
  29. }
  30. }

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

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,349人围观)

还没有评论,来说两句吧...

相关阅读