我有一个线性布局,我希望它在使用处理程序延迟3秒后进行动画制作。
经过3秒后,它甚至没有执行动画,也没有进入AnimationListener的方法。
我是这样做的:
loginBox.setVisibility(View.GONE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Animation animTranslate = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.translate);
animTranslate.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
loginBox.setVisibility(View.VISIBLE);
Animation animFade = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade);
loginBox.startAnimation(animFade);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
btnContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
finish();
}
});
}
}, 3000);
单击btnContinue
时,run()方法正常工作。
我怎样才能让它发挥作用?
答案 0 :(得分:3)
你忘了打电话了
loginBox.startAnimation(animTranslate)
在启动loginBox.setVisibility(View.VISIBLE);
之前,您可能需要TranslateAnimation