prolisk
@prolisk
Верстая. Криво.

Как заставить объект вернуться на исходную позицию java android studio?

Есть объект ImaveView со следующими параметрами:
<ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/ball"
        android:layout_marginBottom="80dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:id="@+id/ball"
        />


При нажатии обьект движется вверх:
ball.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                //Toast.makeText(getApplicationContext(), "Ударил по мячу", Toast.LENGTH_SHORT).show();
                ObjectAnimator animation = ObjectAnimator.ofFloat(v, "y", 20f);
                animation.setDuration(500);
                animation.start();
}
});


Как вернуть обьект в исходную позицию, после того как он достиг точки?
Что я нагуглил :)
Я после setContentView считываю параметры, потом задаю их:
final ConstraintLayout.MarginLayoutParams params = (ConstraintLayout.MarginLayoutParams) ball.getLayoutParams();

И далее с задержкой пытаюсь задать исходные параметры.

ball.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                //Toast.makeText(getApplicationContext(), "Ударил по мячу", Toast.LENGTH_SHORT).show();
                ObjectAnimator animation = ObjectAnimator.ofFloat(v, "y", 20f);
                animation.setDuration(500);
                animation.start();


                Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        params.setMargins(0,0,50,80);
                        ball.setLayoutParams(params);
                    }
                }, 3000);
}
});


Думаю, дело в layout_constraintBottom_toBottomOf, менял на id другого обьекта.
Подскажите, куда копать чтобы вернуть обьект на исходную позицию?
Спасибо.
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Не надо анимировать y, анимируй translationY, и в нужный момент сбрасывай его в 0.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы