[Android学习笔记]设置Activity方向

1.设置Activity方向

在AndroidMainfest.xml里设置Activity默认方向

<activity android:name=".myActivity"
             android:label="@string/app_name"
             android:screenOrientation="portrait" />

landscape:横向

portrait:纵向

2.检测屏幕变化方向

重写onConfigurationChanged方法

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);
        
        //竖屏
        if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
        {
            //改为横屏
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        //横屏
        else if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
        {
            //改为竖屏
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }
onConfigurationChanged

每次旋转屏幕,Activity都会重新绘制页面,Activity重走一次生命周期。

3.阻止方向变化重新创建Activity

在AndroidMainfest.xml里设置

android:configChanges="orientation|keyboardHidden"

这样,方向变换就不会重新创建此Activity

人生就是一局不能Again的DOTA
原文地址:https://www.cnblogs.com/hellenism/p/3634956.html