【问题标题】:View fadeout animation and start new activity查看淡出动画并开始新的活动
【发布时间】:2014-07-10 22:57:44
【问题描述】:

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

但我得到的是: 视图淡出很好,但是当动画结束时,它会显示半秒 相同的视图,然后启动新的 Activity。

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

先谢谢了。

这是我的代码:

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


}

【问题讨论】:

  • 删除finish();线,看看这是否适合你!
  • 这不是我曾经尝试过的事情,但我的猜测很简单,因为您显然不是在为 Activity 的淡出设置动画,而只是对内容视图进行动画处理。当开始另一个Activity 时,该转换会出现短暂的延迟,这就是您正在经历的。
  • 尝试使用单个ActivityFragments 而不是两个Activities。您可以将动画应用于Fragments 在替换时消失以及新出现时的方式。
  • 关于一个带有片段的活动是什么意思?可以举个例子吗?

标签: android animation android-activity view fadeout


【解决方案1】:

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

尝试将finish(); 放在startActivity(i); 之后,这样旧活动的关闭动画就隐藏在新活动的入口后面,那么您可以在保持已实现的自定义图像褪色的同时避免问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多