web-dev-qa-db-ja.com

ランドスケープモードでのみアプリケーションを実行しますか?

デバイスでHelloWorldサンプルアプリケーションをランドスケープモードでのみ実行したい。

デバイスが縦向きに変わったら、トースターを1つ上げたいと思います。たとえば、「アプリケーションを実行するには、ランドスケープモードに変更してください」などです。

どうすればよいですか?

18
Praveenkumar

これをマニフェストファイルのアクティビティタグに追加します。

Android:screenOrientation="landscape"

向きが横向きに固定され、ユーザーに乾杯を表示する必要はありません。

8
Vineet Shukla

マニフェストファイル(xml)内

<activity Android:name=".ActivityName" Android:screenOrientation="landscape">
    </activity>

これも参照してください 向きが変わったためにonCreateが呼び出されたことを確認できますか?

3
Bugs bunny

あなたはこのようなことを試みるかもしれません

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

Log.v("log_tag", "display width is "+ width);
Log.v("log_tag", "display height is "+ height);

if(width<height){
    Toast.makeText(getApplicationContext(),"Device is in portrait mode",Toast.LENGTH_LONG ).show();
} else {
    Toast.makeText(getApplicationContext(),"Device is in landscape  mode",Toast.LENGTH_LONG ).show();
}
1
Jay Mayu

画面の向きの変更をキャッチするアクティビティに configChanges -属性を使用できます。

その後、向きが変わると、アクティビティの onConfigurationChanged()- method が呼び出されます。

現在表示されている向きを確認するには、次の古い投稿を確認してください: Android電話 で向きを確認してください

その後、メッセージを披露したり、好きなことをしたりできます(もちろん、横向きでのみ表示するように設定することもできます)。

0
Lukas Knuth