可在AndroidManifest.xml裡面配置螢幕發現。 在<Activity>中加入這一行android:screenOrientation="landscape/portrait "
android中每次螢幕的切換動會重啟Activity(可以在Activity銷毀前儲存當前活動的狀態,在Activity再次Create的時候載入配置,那樣,進行中的遊戲就不會自動重啟了)
當螢幕變為橫屏的時候,系統會重新呼叫當前Activity的OnCreate方法,你可以把以下方法放在你的OnCreate中來檢查當前的方向,然後可以讓你的SetContentView來載入不同的Layout xml.
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.i("info", "landscape");
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.i("info", "portrait");
}
另外,android中每次螢幕方向切換時都會重啟Activity,所以應該在Activity銷毀前儲存當前活動的狀態,在Activity再次Create的時候載入配置,那樣,進行中的遊戲就不會自動重啟了!要避免在轉屏時重啟activity,可以通過在androidmanifest.xml檔案中重新定義方向(給每個activity加上android:configChanges=”keyboardHidden|orientation”屬性),並根據Activity的重寫onConfigurationChanged(Configuration newConfig)方法來控制,這樣在轉屏時就不會重啟activity了,而是會去調用onConfigurationChanged(Configuration newConfig)這個鉤子方法。
為什麼android:configChanges=”orientation”不可以?我只使用“orientation”,時還是會調用onCreate方法。