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

Joh*_*ohn 1 animation android

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

滑右对齐

<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>
Run Code Online (Sandbox Code Playgroud)

从一项活动跳转到另一项活动: -

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);
Run Code Online (Sandbox Code Playgroud)

});

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

top*_*duo 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>
Run Code Online (Sandbox Code Playgroud)

fromXDelta是动画开头应用的水平平移.将其设置为"100%p"会使第一个活动在动画开始时立即移出屏幕,因此会出现空白屏幕.

对函数的调用overridePendingTransition(int, int)应该是这样的:

overridePendingTransition(R.anim.slide_right, R.anim.slide_left);
Run Code Online (Sandbox Code Playgroud)

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