【问题标题】:fade in & fade out transition not working in android activity淡入淡出过渡在android活动中不起作用
【发布时间】:2016-12-07 19:05:17
【问题描述】:

我在一个项目中使用了这种过渡,但现在当我再次将它应用到我的另一个应用程序时,它拒绝进行任何过渡。

这是我从 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"
    }

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您指出线程问题。现在我开始过渡了:)
    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 2014-08-03
    • 2018-05-27
    • 2012-02-04
    • 1970-01-01
    • 2018-10-31
    相关资源
    最近更新 更多