0

Fadein.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" />

Fadeout.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:duration="500" />

ボタンが押されると、メイン アクティビティ クラスが新しいアクティビティを開始します。

Intent myIntent = new Intent(this, OtherActivity.class); this.startActivity(myIntent);

OtherActivity クラス:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    overridePendingTransition(R.anim.fadein, R.anim.fadeout);
    setContentView(R.layout.view);    
}

動作しません - アクティビティはスライドせず、すぐに開きます。どうしたの?

4

1 に答える 1

1

アクティビティがすぐに開く場合、2 つの可能性があります... 1) アプリを実行/テストしているデバイスまたはエミュレーターの設定からアニメーションが無効になっているか、2) アニメーションの時間も短い/ less は 500 ミリ秒を意味するため、フェージング効果がオープニング効果のように見えるのはそのためかもしれませんが、最初のポイントが主な問題だと思います。

はい、それはアレックスが彼の答えで言及したポイントでもあります

overridePendingTransition() メソッドは、目的のアクティビティからではなく、startActivity() メソッドにほぼ隣接する同じアクティビティ内から startActivity() の後に呼び出す必要があります。

于 2012-08-13T13:28:00.993 に答える