淡入淡出淡出过渡不适用于android活动

时间:2016-12-07 19:05:18

标签: android xml android-activity android-animation android-transitions

我有一个项目,我使用了这个转换,但现在当我再次应用它到我的另一个应用程序时,它拒绝进行任何转换。

这是我从MainActivity到AnotherActivity的代码

fade_in.xml

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

fade_out.xml

<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:fillAfter="true"
    android:duration="500" />

这是我的 MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Timer time = new Timer();
        time.schedule(new TimerTask() {
            @Override
            public void run() {
                Intent intent = new Intent(MainActivity.this, WelcomeSlider.class);
                startActivity(intent);
                overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
                finish();

            }
        }, 3000);
   }

}

我不知道我做错了什么,任何帮助都会受到赞赏。

这是我的 app.gradle

defaultConfig {
        applicationId "com.example.farrukh.whatshapp"
        minSdkVersion 19
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

1 个答案:

答案 0 :(得分:0)

问题是计时器在单独的线程中执行计时器任务。所以修复看起来像:

Timer time = new Timer();
    time.schedule(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Intent intent = new Intent(MainActivity.this, WelcomeSlider.class);
                    startActivity(intent);
                    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
                    finish();
                }
            });
        }
    }, 3000);