Android横竖屏切换改变布局

来源:互联网 发布:废钞令 知乎 编辑:程序博客网 时间:2024/05/16 04:54
前提:
     横屏布局:layout_landscape , 竖屏布局: layout_portrait


      旋转RotateSampleActivity页面


1、在AndroidManifest.xml注册Activity。

 <activity            android:name=".RotateSampleActivity"            android:configChanges="orientation|screenSize"            android:label="@string/title_activity_rotate_sample" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>  </activity>

设置android:configChanges属性,为orientation。

这里需要注意的是:自从Android 3.2(API 13),screen size也开始跟着设备的横竖切换而改变。

所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,

如果你想阻止程序在运行时重新加载Activity,除了设置”orientation“,你还必须设置"ScreenSize"。

2、在旋转界面类中重写方法onConfigurationChanged

import android.app.Activity;import android.content.res.Configuration;import android.os.Bundle;public class RotateSampleActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_portrait);}@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);if (Configuration.ORIENTATION_PORTRAIT == newConfig.orientation) {setContentView(R.layout.layout_portrait);} else if (Configuration.ORIENTATION_LANDSCAPE == newConfig.orientation) {setContentView(R.layout.layout_landscape);}}}



参考:http://www.cnblogs.com/jayceli/archive/2012/10/10/2718984.html




0 0