在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。
在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
另外,android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向(给每个activity加上android:configChanges=”keyboardHidden|orientation”属性),并根据Activity的重写onConfigurationChanged(Configuration newConfig)方法来控制,这样在转屏时就不会重启activity了,而是会去调用onConfigurationChanged(Configuration newConfig)这个方法。
<? xml version = "1.0" encoding = "utf-8" ?> |
02 | < manifest xmlns:android = "http://schemas.android.com/apk/res/android" |
03 | package = "com.liananse.ideal" |
04 | android:versionCode = "1" |
05 | android:versionName = "1.1" > |
07 | < uses-sdk android:minSdkVersion = "10" /> |
10 | android:icon = "@drawable/ic_launcher" |
11 | android:label = "@string/app_name" > |
13 | android:label = "@string/app_name" |
14 | android:name = "com.liananse.WelcomeActivity" |
15 | android:screenOrientation = "portrait" |
16 | android:configChanges = "keyboardHidden|orientation" > |
18 | < action android:name = "android.intent.action.MAIN" /> |
20 | < category android:name = "android.intent.category.LAUNCHER" /> |
24 | android:name = "com.liananse.activity.MainActivity" |
25 | android:screenOrientation = "portrait" |
26 | android:configChanges = "keyboardHidden|orientation" ></ activity > |
28 | android:name = "com.liananse.activity.MusicActivity" |
29 | android:screenOrientation = "portrait" |
30 | android:configChanges = "keyboardHidden|orientation" ></ activity > |
32 | android:name = "com.liananse.activity.config.IdealAbout" |
33 | android:theme = "@android:style/Theme.NoTitleBar" |
34 | android:screenOrientation = "portrait" |
35 | android:configChanges = "keyboardHidden|orientation" ></ activity > |
37 | android:name = "com.liananse.activity.config.IdealSetting" |
38 | android:theme = "@android:style/Theme.NoTitleBar" |
39 | android:screenOrientation = "portrait" |
40 | android:configChanges = "keyboardHidden|orientation" ></ activity > |
42 | android:name = "net.youmi.android.AdActivity" |
43 | android:configChanges = "keyboard|keyboardHidden|orientation" |
44 | android:screenOrientation = "portrait" /> |
45 | < meta-data android:name = "YOUMI_CHANNEL" android:value = "0" /> |
47 | < uses-permission android:name = "android.permission.INTERNET" /> |
48 | < uses-permission android:name = "android.permission.READ_PHONE_STATE" /> |
49 | < uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" /> |
50 | < uses-permission android:name = "android.permission.ACCESS_COARSE_LOCATION" /> |
51 | < uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" /> |