2012-04-18 3 views
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倍のために言うことができます、オリエンテーションだけに変更します携帯電話で2番目の景色に変えたら、それは再び肖像画に変わります。だから少しバギー少し間違っています。

これを行うもう1つの方法はありますか?

+0

mainfestにscreenOrientationに設定することができますし、銀河ノートのようなハイブリッドのために何をすべきかをしたいですか?彼らはあなたのコードによって "電話"と見なされます。私はあなたが何が良いのユーザーを決定しないことをお勧めしますが、それを選択する?多分、一部のユーザーがポートレート/ランドスケープを変更できるようにしたい場合は、設定で「ロック」ボタンを押すことができます。 – Nanne

+0

このリンクを参照してください:http://stackoverflow.com/questions/6557107/how-to-set-orientation-in-two-different-mode-in-two-layout – dreamcoder

+0

私が知っているように、ギャラクシーノートはまったく同じ幅と銀河のタブとしての高さ、私のコードは、タブのようにそれを扱うように。銀河ノートのスクリーンのようなテーブルのような大きな塊のための私のために良い。 –

答えて

0

あなたは

<activity 
      android:name=".Dis" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait" > 
     </activity> 
+0

あなたは私の質問を正しく読まない。 –

関連する問題