我正在制作一个ImageView动画,这样当你点击图像动画就会出现(然后它会重置)但我的问题是,如果再次点击图像最初所在的位置 - 动画从头开始,立即完成(它只是重置并重新开始。
所以我尝试使用
setEnabled(false)
效果很好,动画继续在其路径上被任意随机点击所扰乱,现在唯一的问题是再次启用ImageView - 大约在动画停止的同时
这就是我所拥有的
stopImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mpButtonClick.start();
stopImage.setEnabled(false);
TranslateAnimation anim = new TranslateAnimation(0f,250 + Math.round(Math.random() * (-700)),0f,-300f);
anim.setDuration(4200);
anim.setRepeatCount(0);
stopImage.startAnimation(anim);
现在有一种简单的方法可以在经过一段时间后调用setEnabled(true)吗?
答案 0 :(得分:2)
您可以尝试使用AnimationListener
,然后从setEnabled(true)
拨打onAnimationEnd()
。
这样的事情:
stopImage.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
mpButtonClick.start();
TranslateAnimation anim = new TranslateAnimation(0f,250 + Math.round(Math.random() * (-700)),0f,-300f);
anim.setDuration(4200);
anim.setRepeatCount(0);
anim.setAnimationListener(new Animation.AnimationListener()
{
@Override
public void onAnimationStart(Animation animation)
{
stopImage.setEnabled(false);
}
@Override
public void onAnimationRepeat(Animation animation)
{
}
@Override
public void onAnimationEnd(Animation animation)
{
stopImage.setEnabled(true);
}
});
stopImage.startAnimation(anim);
}
}
以下是AnimationListeners
的{{3}}。