Каждый раз при нажатии на экран - появляется новая View, каждая View должна постоянно смещаться влево, сейчас у меня при добавлении новой View останавливается анимация для предыдущей View. Как сделать, что бы все анимации работали одновременно?
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
int x = (int) e.getX();
int y = (int) e.getY();
draw = new DrawView(getActivity(), 1, String.valueOf(xcoordList.size()));
drawViewList.add(draw);
progressBar.addView(draw);
progressBar.invalidate();
drawViewList.get(drawViewList.size()-1).animate().translationXBy(-360f).setDuration(1000);
Runnable runnable = new Runnable() {
@Override
public void run() {
CountDownTimer timer = new CountDownTimer(System.currentTimeMillis() + 2000 - timeList.get(0), 1000) {
int j = 3;
@Override
public void onTick(long millisUntilFinished) {
final DrawView drawView = drawViewList.get(drawViewList.size()-1);
drawView.animate().translationXBy((-720f)/j).setDuration(1000);
j++;
@Override
public void onFinish() {
}
}.start();
}
};
getActivity().runOnUiThread(runnable);
}
Ответ
Решение, которое применила, заменила данную строку:
drawView.animate().translationXBy((-720f)/j).setDuration(1000);
на:
drawView.animate().translationXBy((-720f)/j)
.setDuration(1000).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
j++;
}
@Override
public void onAnimationEnd(Animator animation) {
drawView.animate().translationXBy((-720f) / j).setDuration(1000);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
Комментариев нет:
Отправить комментарий