0

電話とギャラクシータブの両方のアプリを作成しています。携帯電話では縦向きモードのみ、タブでは縦向きと横向きになりたいです。

これまでのところ、このコードスニペットを取得しました:

        public void onCreate(Bundle savedInstanceState)
        {
            DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);

            int width = dm.widthPixels;
            int height = dm.heightPixels;

            if(!(width>=800 && height>=1280))
            {
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
            }



            super.onCreate(savedInstanceState);
            setContentView(R.layout.mylayout);

            //... more code below

画面サイズを確認するだけで、タブレットの 800x1280 の場合は何もせず、向きの変更が有効になっています。800x1280 でない場合は、次のようにします。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);

私はそれがうまくいくと思っていましたが、いくつかのランダムなバグのために、毎回うまくいくとは限りません..約10回、向きが電話で横向きに変わり、縦向きに戻ります。少しバグがあり、少し間違っています。

これを行う別のより良い方法はありますか?

4

1 に答える 1

0

メインフェストでscreenOrientationに設定できます

<activity
            android:name=".Dis"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
        </activity>
于 2012-04-18T10:53:29.257 に答える