#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
}
.
.
}