Свойства Android, которые можно анимировать с помощью ObjectAnimator

Я начинаю играть с анимациями анимации в анимации вида, так как у меня есть представление, которое нужно масштабировать и толкать других так, как оно есть. Я видел несколько примеров, но мне просто интересно, есть ли где-нибудь, где представлен список свойств, которые можно изменить с помощью этих классов. Например, я увидел один учебник, который сделал быструю ротацию, используя:

ObjectAnimator.ofFloat(aniView, "rotation", 360) 

Что довольно круто, но я бы не знал свойства вращения, если бы не этот точный учебник, есть ли исчерпывающий список того, что можно сделать? Конкретное свойство, которое я хочу оживить, – это вес представления в LinearLayout, если у кого есть какие-либо советы по этому поводу.

Solutions Collecting From Web of "Свойства Android, которые можно анимировать с помощью ObjectAnimator"

Лучше поздно, чем никогда, так что вот полный список свойств, которые можно анимировать с помощью ObjectAnimator.

http://developer.android.com/guide/topics/graphics/prop-animation.html#views

Документы подразумевают, что любое значение может использоваться с ObjectAnimator если вы придерживаетесь соглашения об именах:

  1. Свойство объекта, которое вы анимируете, должно иметь функцию setter (в случае верблюда) в виде set<propertyName>() . Поскольку ObjectAnimator автоматически обновляет свойство во время анимации, он должен иметь доступ к свойству с помощью этого метода setter. Например, если имя свойства foo , вам нужно иметь метод setFoo() . Если этот метод setter не существует, у вас есть три варианта:
    • Добавьте метод setter в класс, если у вас есть права на это.
    • Используйте класс-оболочку, который у вас есть права на изменение, и чтобы эта оболочка получала значение с помощью действительного метода setter и перенаправляла его на исходный объект.
    • Вместо этого используйте ValueAnimator.
  2. […]

Что касается вашего вопроса, View имеет метод setRotation(float) – который дает вам подсказку, которую он может использовать. В частности, вот как вы это сделаете с определенным TimeInterpolator :

 ObjectAnimator anim = ObjectAnimator.ofFloat(myView, "rotation", 0f, 90f); anim.setDuration(2000); // Duration in milliseconds anim.setInterpolator(timeInterpolator); // Eg Linear, Accelerate, Decelerate anim.start() // Begin the animation 

Вы можете прочитать документы для получения более подробной информации о ожиданиях ObjectAnimator .