我正在尝试实现从右到左滑动的快速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(); }
解决方法:
我通常会从正在启动的活动的onCreate()函数中覆盖动画,这看起来效果很好.调用者应该只是startActivity();不要使用overrIDePendingTransition()或FLAG_ACTIVITY_NO_ANIMATION或其他任何东西.
复制&从实际部署的代码粘贴:
@OverrIDe public voID onCreate(Bundle savedState){ overrIDePendingTransition(R.anim.anim_slIDeup, R.anim.anim_hold); super.onCreate(savedState);
正如其他人提到的那样,当您覆盖活动开始的动画时,您还应该覆盖活动完成的动画以匹配.
@OverrIDe public voID finish(){ super.finish(); overrIDePendingTransition(R.anim.anim_hold, R.anim.anim_slIDedown);}
总结 以上是内存溢出为你收集整理的android – overridePendingTransition()不起作用全部内容,希望文章能够帮你解决android – overridePendingTransition()不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)