電話とギャラクシータブの両方のアプリを作成しています。携帯電話では縦向きモードのみ、タブでは縦向きと横向きになりたいです。
これまでのところ、このコードスニペットを取得しました:
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回、向きが電話で横向きに変わり、縦向きに戻ります。少しバグがあり、少し間違っています。
これを行う別のより良い方法はありますか?