代码改变世界

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

2014-03-31 01:10  hellenism  阅读(813)  评论(0编辑  收藏  举报

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