Android 查看淡出动画并开始新活动
好吧,我想做的是: 要淡出当前活动,使其完全成为ImageView, 并开始新的活动 但我得到的是: 视图很好地淡出,但当动画结束时,它会显示我大约半秒 相同的视图,然后启动新活动 谁能告诉我我做错了什么 谢谢 这是我的密码:Android 查看淡出动画并开始新活动,android,animation,android-activity,view,fadeout,Android,Animation,Android Activity,View,Fadeout,好吧,我想做的是: 要淡出当前活动,使其完全成为ImageView, 并开始新的活动 但我得到的是: 视图很好地淡出,但当动画结束时,它会显示我大约半秒 相同的视图,然后启动新活动 谁能告诉我我做错了什么 谢谢 这是我的密码: public class FirstActivity extends Activity{ ImageView enterImage; Button next; @Override protected void onStart() { super.onStart
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);
}
我认为问题在于你在淡化形象而不是活动。新活动在您实际调用后需要一点时间才能显示,并且在这段时间内,它会向您显示旧视图 试着完成这项任务;在startActivityi之后;通过这种方式,旧活动的结束动画隐藏在新活动的入口后面,这样可以避免问题,同时保持已实现的自定义图像淡入淡出
编辑:尝试在两个活动上使用此选项:Activity.overridePendingTransitionandroid.R.anim.fade_in,android.R.anim.fade_out;这需要同时放在onCreate和onPause方法中。删除finish;排队看看这对你是否有效!这不是我曾经尝试过做的事情,但我的猜测很简单,因为你显然不是在制作淡出活动的动画,而是在制作内容视图。当启动另一个活动时,该转换将有一个短暂的延迟,这就是您正在经历的。请尝试使用带有片段的单个活动,而不是两个活动。您可以将动画应用于片段在被替换时以及新片段出现时如何消失。对于一个包含片段的活动,您是什么意思?你能给我举个例子吗?