Список свойств анимации ObjectAnimator
Я пытаюсь найти список свойств, которые ObjectAnimator может анимировать и как он их анимирует.
Например, я хотел бы знать, как анимируется свойство translationY. Является ли значение координатой или это расстояние?
1 ответ
ObjectAnimators
будет на самом деле анимировать что-нибудь с "set" перед именем. Так что в случае View есть setX(float)
, setY(float)
, setZ(float)
, setTranslationX(float)
, и так далее.
Аналогичным образом, если вы создаете пользовательский вид, который имеет свои собственные свойства, то просто используйте set____(type)
Синтаксис использовать ObjectAnimator
на нем без дополнительной работы.
По сути, они просто вызывают эти методы с повторяющимися интервалами, значения которых определяются TimeInterpolator
это установлено на Animator
,
РЕДАКТИРОВАТЬ:
Существует множество свойств, которые можно анимировать в View, но вот описание наиболее распространенных.
setX/Y(float)
- Это оживит вид до точных координат X или Y родителя View
что он содержится в. Координаты пикселей начинаются с (0,0)
в верхнем левом углу и (getWidth(), height())
внизу справа. setY(float)
будет корректировать getTop()
зрения и setX(float)
будет корректировать getLeft()
зрения.
setTranslationX/Y(float)
- Это оживит вид до относительного положения View
где отправная точка. Так, например, если вид getLeft()
возвращает 50, потом при звонке setTranslationX(25)
переместит вид вправо на 25 пикселей на 75 пикселей. setTranslationY(25)
переместит вид вниз на 25 пикселей. Отрицательные значения будут перемещать его влево и вверх соответственно.
setRotation(float)
- Это будет вращать View
вокруг заданной точки поворота, как определено setPivotX(float)
а также setPivotY(float)
, По умолчанию точка поворота находится в координатах (0,0). Вы можете установить его в центр, выполнив что-то вроде этого:
View viewToAnimate = getViewToAnimate();
float width = viewToAnimate.getWidth();
float height = viewToAnimate.getHeight();
viewToAnimate.setPivotX(width/2);
viewToAnimate.setPivotY(height/2);
setScaleX/Y(float)
- Это уменьшит или увеличит представление на основе точки разворота, как описано выше. Значение "1.0f" сделает его нормальным размером. Все, что меньше "1", сократит его, а все, что больше "1", увеличит его.