【发布时间】: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时,该转换会出现短暂的延迟,这就是您正在经历的。 -
尝试使用单个
Activity和Fragments而不是两个Activities。您可以将动画应用于Fragments在替换时消失以及新出现时的方式。 -
关于一个带有片段的活动是什么意思?可以举个例子吗?
标签: android animation android-activity view fadeout