При запуске вызвать простую анимацию

#java #android #animation

#java #Android #Анимация

Вопрос:

Я не уверен, как заставить простой onFling просто запускать анимацию. Не имеет значения, в каком направлении выполняются движения, любой контакт и скольжение по экрану должны вызвать запуск анимации. Другая вещь, которую мне интересно, — это как заставить его пропустить анимацию, и когда анимация закончится, я хочу, чтобы она отображала картинку. Чтобы дать вам представление о том, что я делаю, представьте доску для вращения twister. Анимация — это вращение счетчика, и после его завершения вращение останавливается и указывает направление. Как я могу получить аналогичный эффект. (Анимация представляет собой вращающуюся анимацию, и все изображения указывают в разных направлениях)

Был бы признателен за любую помощь, которую кто-либо может оказать. Спасибо.

Ответ №1:

одна из возможностей: используйте gesturedetector для обнаружения запуска.

псевдокод:

 public class WhatEver extends Activity implements OnGestureListener {
private GestureDetector gestures;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
gestures = new GestureDetector(mContext, this);
View yourViewYouWantToHaveThemFling=(View) findViewById(blah..);
yourViewYouWantToHaveThemFling.setOnTouchListener(new OnTouchListener() {

                @Override
                public boolean onTouch(View arg0, MotionEvent event) {

                    if (gestures.onTouchEvent(event)) {
                        return true;
                    }
                    return false;
                }

            });

}
//all your normal stuff
@Override
    public boolean onDown(MotionEvent e) {

        return true; //must return true to continue
    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
//do something
        return false;
    }

    @Override
    public void onLongPress(MotionEvent e) {

    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

            float distanceY) {

        return false;
    }

    @Override
    public void onShowPress(MotionEvent e) {

    }

    @Override
    public boolean onSingleTapUp(MotionEvent e) {

        return false;
    }
}
  

что касается анимации, установите прослушиватель для вашей анимации,

 yourAnimation.setAnimationListener(new DisplayPicture()); 
  

затем

 private final class DisplayPicture implements Animation.AnimationListener {
.
.

public void onAnimationEnd(Animation animation) {
            //code to display your picture here
        }
.
.
}