独自の.xmlアニメーションファイルを作成して、新しいファイルをフェードActivity
インし、現在のファイルをフェードアウトすることができますActivity
。
fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="500" />
fade_out.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:fillAfter="true"
android:duration="500" />
そのようなコードでそれを使用してください:(あなたの内部Activity
)
Intent i = new Intent(this, NewlyStartedActivity.class)
startActivity(i)
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
上記のコードは、現在アクティブなコードをフェードアウトしActivity
、新しく開始Activity
されたコードをフェードインして、スムーズな移行を実現します。
更新:@Dan Jは、組み込みのAndroidアニメーションを使用するとパフォーマンスが向上することを指摘しました。これは、いくつかのテストを行った後、実際に当てはまることがわかりました。組み込みのアニメーションを使用したい場合は、以下を使用してください。
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
android.R
代わりに参照していることに注意してくださいR
リソースIDにアクセスする。
更新:APIレベル19で導入されたTransitionクラスを使用してトランジションを実行するのが一般的な方法になりました。
overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);
ようです。これらのファイルを表示すると、カスタムアニメーションを改善する方法のヒントが得られる場合があります(たとえば、フェードインをフェードアウトよりも長くするなど)。