横向きまたは縦向きのいずれかで実行できるいくつかの「通常の」アクティビティを備えたアプリがあります。それらはポートレート用に設計されており、主にポートレートで使用されます。
このアプリには、カメラを使用し、横向きにロックされている1つのアクティビティがあります。このアクティビティは、画像とテキストを90度回転させることで縦向きになっているので、他のアクティビティと同じように「シミュレート」します。
Samsung Galaxy Tab7やGalaxyS3などの一部のデバイスでは、通常の縦向きのアクティビティからカメラの横向きのアクティビティに移動したり、戻ったりするときに回転アニメーションが表示されます。横向きのアクティビティは縦向きをシミュレートするため、これはユーザーを混乱させます。
この回転アニメーションを削除する方法はありますか?理想的には、デフォルトのポートレートからポートレートアニメーションに変更したいのですが、回転アニメーションを削除するだけで十分です。
私はもう試した
overridePendingTransition(0, 0);
その方法の他のバリエーションは成功しませんでした。
[追加した]
@ igalarzab、@ Georg、@ Joeによる提案に従って、私はこれを実行しました(まだ運がありません):
- マニフェストにandroid:configChanges = "orientation|screenSize"を追加しました
- onConfigurationChangedを追加しました
- 何もしないダミーアニメーションを作成し、overridePendingTransition(R.anim.nothing、R.anim.nothing);を追加しました。
私はこれらの結果を得ました:
- onConfigurationChangedは、同じアクティビティを回転する場合にのみ呼び出されます(縦向きのアクティビティA->横向きのアクティビティA)。ただし、ポートレートのアクティビティA->ランドスケープのアクティビティBから移動する場合は呼び出されません
- これにより、回転時にアクティビティが再開されなくなりましたが、回転アニメーションは削除されませんでした(Galaxy S3、Galaxy Nexus、Galaxy Tab 7.0、Galaxy Tab 10.1でテスト済み)
- overridePendingTransition(R.anim.nothing、R.anim.nothing); 通常のトランジション(ポートレート->ポートレートとランドスケープ->ランドスケープ)は削除されましたが、回転アニメーション(ポートレート->ランドスケープおよびその逆)は削除されませんでした。
[ビデオ]
無効にしたいアニメーションを示す動画をアップロードしました。これは、ポートレートで電話を保持しているときに、カメラアクティビティ(横向きにロック)から他のアクティビティに変更するときに発生します。