好吧,我想做的是: 淡出当前活动,它都是一个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);
}
答案 0 :(得分:0)
我认为问题在于你淡出图像而不是活动。在您实际调用它之后,新活动需要一些时间才会显示,并且在此时它会向您显示旧视图。
尝试将finish();
startActivity(i);
放置在新活动的入口后面隐藏旧活动的结束动画,然后您可以在保持自定义图像褪色的同时避免此问题&# 39;已实施。
编辑:尝试在两个活动中使用此功能:Activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
这需要同时放入onCreate()
和onPause()
方法。