android暂时使用setEnabled(false)

时间:2011-08-24 18:07:41

标签: android

我正在制作一个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)吗?

1 个答案:

答案 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}}。