1

我正在使用 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);

});

为什么这个黑屏出现在两个活动之间。

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);

第一个参数确定第二个活动使用的过渡动画。此外,这两个动画可以更恰当地命名为 slide_out_to_right 和 slide_in_from_left,因为实际上它们都向右滑动。

于 2012-11-27T07:01:32.840 回答