查看淡出动画并开始新活动

时间:2014-07-10 22:57:44

标签: android animation android-activity view fadeout

好吧,我想做的是: 淡出当前活动,它都是一个ImageView, 并开始新的活动。

但我得到的是: 视图淡出非常好但是当动画结束时它会显示我半秒钟 相同的视图,之后它开始新的活动。

谁能告诉我我做错了什么?

非常感谢。

这是我的代码:

public class FirstActivity extends Activity{

ImageView enterImage;
Button next;

@Override
protected void onStart() {
    super.onStart();
    setContentView(R.layout.activity_first);
     enterImage = (ImageView)findViewById(R.id.enterImg);
     next = (Button)findViewById(R.id.next);
     next.setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v) {
            fadeOutAndHideImage(enterImage);
        }
    });

}

private void fadeOutAndHideImage(final ImageView img)
  {
    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator());
    fadeOut.setDuration(1500);

    fadeOut.setAnimationListener(new AnimationListener()
    {
            public void onAnimationEnd(Animation animation) 
            {
                finish();
                Intent i = new Intent(FirstActivity.this, SecondActivity.class);
                startActivity(i);
            }
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationStart(Animation animation) {}
    });

    img.startAnimation(fadeOut);


}

1 个答案:

答案 0 :(得分:0)

我认为问题在于你淡出图像而不是活动。在您实际调用它之后,新活动需要一些时间才会显示,并且在此时它会向您显示旧视图。

尝试将finish(); startActivity(i);放置在新活动的入口后面隐藏旧活动的结束动画,然后您可以在保持自定义图像褪色的同时避免此问题&# 39;已实施。

编辑:尝试在两个活动中使用此功能:Activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);这需要同时放入onCreate()onPause()方法。