Xamarin.Android/画面の向きを固定する

提供: MonoBook
移動: 案内検索

一般的なアプリでは画面は可変の方がいいのだろうが、MonoGameなどで作るゲームでは画面の向きを固定したいことが多い。

実装:ActivityのRequestedOrientationプロパティをoverrideする[編集]

縦方向に固定する場合。

    public class Activity1 : AndroidGameActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
            // 以下のRequestedOrientationプロパティに設定する方法だとダメ。
            // 起動時に一瞬だけ横になりMonoGameの初期化ルーチンで画面サイズの情報がバグる。
            this.RequestedOrientation = ScreenOrientation.Portrait;
 
            var g = new GameMain();
            SetContentView(g.Services.GetService<View>());
            g.Run();
        }
 
        // RequestedOrientationプロパティをoverrideする方法だと完璧に動くようだ。
        public override ScreenOrientation RequestedOrientation
        {
            get
            {
                return ScreenOrientation.Portrait;
            }
            set
            {
                base.RequestedOrientation = ScreenOrientation.Portrait;
            }
        }
    }

関連項目[編集]

参考文献[編集]