2011-01-21 15 views
2

私は現在、画面の向きに応じて異なる動作を持つAndroidアプリケーションを開発中です。Android - ハンドルの画面の向き

私はonCreate()メソッドで画面の向きを取得し、そこから管理するためにgetWindowManager()。getDefaultDisplay()。getRotation()を使用しています。

基本的に私の問題は、私が方向を制御する必要があるということです。ランドスケープモードでは、ユーザーがそれを決定すると、アプリケーションはポートレートモードに切り替える必要があります。ポートレートモードに切り替えるまで、次に再びランドスケープになるまで、アプリケーションはそのままです。

私は、風景のときの方向を変更するためにsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)を使用しています。問題は、これを使って私は景観に戻ることができないということです。 onCreate()でsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)を使用すると、数秒後に風景モードに切り替わる問題があります(画面がまだ横になっているため)。

これを管理する他の方法はありますか?基本的には、リスナー(または、ビューがポートレートモードでロックされているときに呼び出されないため、onCreate以外の場所では)の画面の向きの変更をキャッチする方法はありますか?私はそれについて何も見つけることができません...

どんなアイデアも大歓迎です!

ありがとうございます!

+0

これは役立ちます:http://stackoverflow.com/questions/4349353/intent-for-screen-orientation-change/4349364#4349364 –

答えて

2

2つのレイアウトを作成してみてください.1つはレイアウト - ランドに、もう1つはレイアウトポートに作成してみてください。これらはデバイスの向きが変わると自動的に適用されます。

これらのそれぞれの中に、ポートレートビュー用と、ランドスケープビュー用の2つの異なる子レイアウトを作成し、それらの表示を変更してユーザーの好みを反映させます。

このように、ローテーションの変更は一切処理する必要はありません。Androidでそれを管理し、ユーザーの上書きを管理するだけです。

関連する問題