回答:
API 16以降、Context.startActivity(Intent、Bundle)または関連メソッドを呼び出すときに、アクティビティオプションバンドルを提供できます。これは、ActivityOptionsビルダーを介して作成されます。
Intent myIntent = new Intent(context, MyActivity.class);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out);
context.startActivity(myIntent, options.toBundle());
ActivityOptionsビルダーや他の方法をチェックアウトすることを忘れないでくださいActivityOptionsCompatをあなたがサポートライブラリを使用している場合。
API 5以降:
APIレベル5以上を対象とするアプリには、Activities overridePendingTransition
メソッドがあります。着信アニメーションと発信アニメーションには2つのリソースIDが必要です。のidは0
アニメーションを無効にします。通話の直後にこれをstartActivity
呼び出します。
つまり:
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
API 3以降:
Intent.FLAG_ACTIVITY_NO_ANIMATION
インテントにフラグを設定すると、デフォルトのアニメーション(右からスライドイン)を防ぐことができます。
つまり:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
次に、アクティビティで独自のアニメーションを指定するだけです。
これは1.5 API(レベル3)でも機能します。
R.anim.fade_in
まだ想定しているxmlファイルのアニメーションではありませんres\anim
か?
これを行うには、OverridePendingTransitionメソッドを使用する必要があります。これは、Activityクラスにあります。apidemosサンプルのres / animフォルダーにあるサンプルアニメーション。確認してください。ApiDemos / App / Activity / animationでデモを確認するだけではありません。
例:
@Override
public void onResume(){
// TODO LC: preliminary support for views transitions
this.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}
super.onResume();
なっていた、:「android.util.SuperNotCalledException:アクティビティ{com.abc.MyActivityは} super.onResume()に通じ呼び出していませんでした」
チュートリアルを書いて、アクティビティのインとアウトをアニメーション化できるようにします。
楽しい:
Jelly Beanは、ActivityOptions.makeCustomAnimation()メソッドでこのサポートを追加します。もちろん、これはJelly Beanにのみ存在するため、実用上はほとんど価値がありません。
ActivityOptionsCompat
pre-JellyBeanをターゲットにする場合に使用します。