Android

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);
        }
    }
上一篇下一篇

猜你喜欢

热点阅读