在第一次循环后停止可绘制动画

时间:2015-04-23 16:27:38

标签: android ontouchevent motionevent animationdrawable

我的问题是试图弄清楚如何通过图像迭代后停止可绘制动画(例如,它回到葡萄图像)。我当然不能使用.ACTION.DOWN中实现的方法,所以有人可以帮我解决这个问题。

    public boolean onTouchEvent (MotionEvent event){
        Drawable currentFrame, checkFrame;
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            if (fruitAnimation.isRunning()) {
                fruitAnimation.stop();
                //The variable that will guard the frame number
                int frameNumber = 0;
                //Get the frame of the animation
                //Drawable currentFrame, checkFrame;
                currentFrame = fruitAnimation.getCurrent();
                //checks the position of the frame.
                for (int i = 0; i < fruitAnimation.getNumberOfFrames(); i++) {
                    checkFrame = fruitAnimation.getFrame(i);
                    if (checkFrame == currentFrame) {
                        frameNumber = i;
                        break;
                    }

                }
                String fruit = "";

                switch (frameNumber) {
                    case 0:
                        fruit = "Grapes";
                        break;
                    case 1:
                        fruit = "Lemon";
                        break;
                    case 2:
                        fruit = "Orange";
                        break;
                    case 3:
                        fruit = "Pear";
                        break;
                    case 4:
                        fruit = "Strawberry";
                        break;


                }
                Toast.makeText(this, fruit, Toast.LENGTH_SHORT).show();

            }else {
                fruitAnimation.start();


            }
            return true;
        }

        return super.onTouchEvent(event);
    }

1 个答案:

答案 0 :(得分:0)

你最有可能做错了。由于你可以利用animation listener来监控你的动画,我会将动画设置为一次性运行,然后在我的监听器中,在onAnimationEnd()中检查我是否达到了我的限制,如果不,再次开始动画。