偶爾地,你可能想要確保你的應用程式在某一個確定的方向上面顯示,橫屏模式或豎屏模式。例如,你可能會開發一款只在橫屏模式下面啟動並執行遊戲。在這種情況下,可以通過編寫代碼,強制把Activity的方向設定為橫向,這需要使用Activity類的setRequestOrientation()方法。[java] view plaincopyimport android.content.pm.ActivityInfo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 設定為橫屏模式 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } 如果想要設定為豎屏模式,可以使用ActivityInfo.SCREEN_ORIENTATION_PORTRAIT常量。除了使用setRequestOrientation()方法,也可以在AndroidManifest.xml檔案中進行設定。[html] view plaincopy<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.learn2develop.Orientations" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".OrientationsActivity" <!-- 設定screenOrientation--> android:screenOrientation="landscape" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 在之前的例子中,被包含的Activity被設定成了橫屏模式,同時阻止了Activity被銷毀。這是因為,Activity被設定成了固定的方向,當裝置的方向改變時,Activity不會被銷毀,onCreate()方法也就不會被調用。下面是android:screenOrientation屬性的另外兩個可取的值:portrait —— 豎屏模式sensor —— 依據重力測試器去判斷方向(預設值)