Android横竖屏切换
2020-12-25 本文已影响0人
明日未期
AndroidManifest.xml
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:screenOrientation="portrait"
boolean isFullScreen=false;
boolean isStatusBarShowing=true;
void setFullScreen(boolean fullScreen) {
isFullScreen = fullScreen;
isStatusBarShowing = fullScreen;
//退出全屏 显示状态栏和导航栏
showNavgationAndStatusBar();
//屏幕方向
int orientation=ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
if (fullScreen) {
//全屏 隐藏状态栏和导航栏
hideNavgationAndStatusBar();
orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
}
mActivity.setRequestedOrientation(orientation);
}
void showNavgationAndStatusBar() {
mActivity.getWindow().setStatusBarColor(Color.BLACK);
mActivity.getWindow().setNavigationBarColor(Color.WHITE);
mActivity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
void hideNavgationAndStatusBar() {
hideNavigationAndStatusBar(mActivity, true);
}
void hideNavigationAndStatusBar(Activity activity, boolean hasFocus) {
if (hasFocus && Build.VERSION.SDK_INT >= 19) {
View decorView = activity.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);
activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
}
}