Androidアプリケーションを縦向きモードでのみ実行したいですか。どうやってやるの?
マニフェストで、すべてのアクティビティにこれを設定します。
<activity Android:name=".YourActivity"
Android:configChanges="orientation"
Android:screenOrientation="portrait"/>
説明させてください:
Android:configChanges="orientation"
を使用すると、Androidに、向きの変更を担当することを伝えます。Android:screenOrientation="portrait"
は、デフォルトの方向モードを設定します。Androidのマニフェストファイルで、<activity>
のAndroid:screenOrientation="portrait"
の属性を入れます。
2つの方法があります。
Android:screenOrientation="portrait"
を追加するthis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
を追加します。古い記事私は知っています。タブレットの向きなどが違う場合でも、アプリを常に縦向きモードで実行するために、私はこの機能をデザインしました。機能はデバイス上で編成されています。
private void initActivityScreenOrientPortrait()
{
// Avoid screen rotations (use the manifests Android:screenOrientation setting)
// Set this to nosensor or potrait
// Set window fullscreen
this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics metrics = new DisplayMetrics();
this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
// Test if it is VISUAL in portrait mode by simply checking it's size
boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels );
if( !bIsVisualPortrait )
{
// Swap the orientation to match the VISUAL portrait mode
if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
{ this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
}
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }
}
魅力のように動作します!
注意:アクティビティによってthis.activity
を変更するか、メインアクティビティに追加してthis.activity
;-)を削除してください。