1. ホーム
  2. android

[解決済み] AndroidのstartActivity()の遷移アニメーションを変更することはできますか?

2022-09-07 02:43:14

質問

アクティビティを開始する際に、アルファフェードインで startActivity() のフェードイン、そして finish() . Android SDKでこれを行うにはどうしたらよいでしょうか。

どのように解決するのですか?

finish()を実行したのと同じステートメントで、そこでもアニメーションを実行します。そして、新しいアクティビティで、別のアニメーションを実行します。このコードを見てください。

フェードイン.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:fillAfter="true">
     <alpha android:fromAlpha="1.0" 
            android:toAlpha="0.0"
            android:duration="500"/> //Time in milliseconds
</set>

仕上げのクラスで

private void finishTask() {
    if("blabbla".equals("blablabla"){
        finish();
        runFadeInAnimation();
    }
}

private void runFadeInAnimation() {
    Animation a = AnimationUtils.loadAnimation(this, R.anim.fadein);
    a.reset();
    LinearLayout ll = (LinearLayout) findViewById(R.id.yourviewhere);
    ll.clearAnimation();
    ll.startAnimation(a);   
}

フェードアウト.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
           android:fillAfter="true">
  <alpha android:fromAlpha="0.0"
         android:toAlpha="1.0"
         android:duration="500"/>
</set>

新しいActivityクラスで、私が書いたrunFadeAnimationと同じようなメソッドを作り、onCreateでそれを実行し、リソースIDをfadeoutに変更することを忘れないでください。