1

2つのアクティビティ間のスライドインとスライドアウトにApisのdemeを使用しています。しかし、あるアクティビティから別のアクティビティにジャンプすると、黒い画面が表示されます。

スライド-左-

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator" >

    <translate
        android:duration="300"
        android:fromXDelta="100%p"
        android:toXDelta="0" />

</set>

スライド-右-

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator" >

    <translate
        android:duration="300"
        android:fromXDelta="-100%p"
        android:toXDelta="0" />

</set>

あるアクティビティから別のアクティビティにジャンプするには:-

Button button1 = (Button) findViewById(R.id.Button01);
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(), SecondView.class));
                overridePendingTransition(R.anim.slide_left, R.anim.slide_right);

});

この黒い画面が2つのアクティビティの間に表示されるのはなぜですか。

4

1 に答える 1

8

最初のxmlは次のようになります。

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >

<translate
    android:duration="300"
    android:fromXDelta="0"
    android:toXDelta="100%p" />

</set>

fromXDeltaは、アニメーションの開始時に適用される水平移動です。これを「100%p」に設定すると、アニメーションの開始時に最初のアクティビティが画面のすぐ外にシフトするため、画面が空白になります。

関数の呼び出しは次のoverridePendingTransition(int, int)ようになります。

overridePendingTransition(R.anim.slide_right, R.anim.slide_left);

最初の引数は、 2番目のアクティビティで使用される遷移アニメーションを決定します。また、2つのアニメーションは、実際にはすべて右にスライドするため、slide_out_to_rightおよびslide_in_from_leftとしてより適切に名前を付けることができます。

于 2012-11-27T07:01:32.840 に答える