画面の逆向きを設定する
|Android SDK 2.2までは画面の向きが縦と横のみサポートされていましたが、Android SDK 2.3からは縦と横の逆向きもサポートされるようになりました。
ですが、現在のエミュレータでの[Ctrl] + [F12]の操作では縦と横のみサポートされている為、縦と横の逆向きの動きを確認するにはソースコードで設定する必要があります。
詳細は以下から。
Android SDK 2.3からActivityInfoクラスに以下の定数が追加されました。
SCREEN_ORIENTATION_FULL_SENSOR | 全ての向きを表す定数 |
SCREEN_ORIENTATION_REVERSE_LANDSCAPE | 横の逆向きを表す定数 |
SCREEN_ORIENTATION_REVERSE_PORTRAIT | 縦の逆向きを表す定数 |
SCREEN_ORIENTATION_SENSOR_LANDSCAPE | 横と横の逆向きを表す定数 |
SCREEN_ORIENTATION_SENSOR_PORTRAIT | 縦と縦の逆向きを表す定数 |
この中から、今回は画面を縦の逆向きと横の逆向きに固定するためにSCREEN_ORIENTATION_REVERSE_LANDSCAPEとSCREEN_ORIENTATION_REVERSE_PORTRAITを使用します。
まずは縦の逆向きを設定する為のサンプルです。
ReversePortrait.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //画面の向きを縦の逆向きにする this.setRequestedOrientation(ActivityInfo. SCREEN_ORIENTATION_REVERSE_PORTRAIT); }
setRequestedOrientationメソッドにActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAITを引数として渡すことで縦の逆向きを設定することができます。
次に横の逆向きを設定する為のサンプルです。
ReverseLandscape.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //画面の向きを横の逆向きにする this.setRequestedOrientation(ActivityInfo. SCREEN_ORIENTATION_REVERSE_LANDSCAPE); }
setRequestedOrientationメソッドにActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAITを引数として渡すことで横の逆向きを設定することができます。