Как реализовать анимацию перемещения Button по окружности?
Перерыл весь интернет и все виды анимаций, которые предлагаются при поиске этой темы, такие как ObjectAnimator, ValueAnimator и т.д. реализуют метод перемещения Translate по линейной траектории из точки с координатами (startX, startY) в точку (endX, endY). Мне же нужно анимированное перемещение кнопки в ту же точку, где она по факту и находится, но только по траектории, описывающей окружность. Пожалуйста, подскажите, какие есть варианты решения. Заранее очень признателен!
Ответы (2 шт):
Автор решения: Style-7
→ Ссылка
Предварительно устанавливаем новый центр вращения.
public void onClick( View v){
v.setPivotY( -350 );
ObjectAnimator oa = ObjectAnimator.ofFloat( v, "rotation", 0, 360);
oa.setDuration( 3000 );
oa.start();
}
Автор решения: Дмитрий Каргин
→ Ссылка
Нашел решение, которое мне нужно. Здесь кнопка всегда остается горизонтальной.
public void animationCycle(View view, int radius, int centerX, int centerY){
Path path_cycle = new Path();
path_cycle.addArc(centerX - radius - view.getWidth(),
centerY - radius - view.getHeight(),
centerX + radius,
centerY + radius,
0, 360);
ObjectAnimator animation = ObjectAnimator.ofFloat(view, View.X, View.Y, path_cycle);
animation.setDuration(1000);
animation.start();
}
