【发布时间】:2014-08-19 03:29:51
【问题描述】:
我正在尝试实现一个快速的 SplashActivity,它从右向左滑入,然后在 MainActivity 向右滑入时向左滑出。目前,动画 XML 已就位,但无法正常工作,仅出现初始屏幕,然后过渡到主要活动也不起作用。这是作为应用程序开始活动的 SplashActivity。
public class SplashActivity extends Activity{
private int SPLASH_MILLISECONDS = 1000;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
setContentView(R.layout.activity_splash);
runTimer();
}
private void runTimer() {
Timer timeout = new Timer();
timeout.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable(){
@Override
public void run() {
goToMainActivity();
}
});
}
}, SPLASH_MILLISECONDS);
}
private void goToMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION );
startActivity(intent);
finish();
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
}
由于某种原因这不起作用,我做错了什么?
编辑:这是我的新 goToMainActivity() 方法,但两个动画都没有工作。在这一点上,我不太关心第一个动画的工作,我只希望第二个工作。
private void goToMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
finish();
}
【问题讨论】:
-
"向主要活动的过渡正常" -- 这是否意味着它按预期工作?我虽然是这样,但您的最后评论似乎表明并非如此。
-
它没有按预期工作,到目前为止,两个动画都没有工作,但是我更关心第二个动画的工作。
-
代码似乎没问题。标准动画是否正在运行?还是根本没有动画?或者可能是不正确的动画?您能否发布
slide_in_right.xml和slide_out_left.xml文件,并解释您正在尝试的确切动画效果? -
哪里/什么是“overridePendingAnimation()”,我还没听说过?
-
@sai 它被称为 overridePendingTransition(他写对了吗),你可以在这里找到它:developer.android.com/reference/android/app/…
标签: android animation android-activity fragment