在android中使用动画的两个活动之间的黑屏

时间:2012-11-27 06:38:36

标签: android animation

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

});

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

1 个答案:

答案 0 :(得分:5)

你的第一个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,因为实际上它们都向右滑动。