Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 2

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

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

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

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

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

Ответ 3

Вот полный список имен свойств, которые вы ищете:

  • вращение
  • RotationX
  • rotationY
  • translationX
  • translationY
  • Scalex
  • ScaleY
  • pivotX
  • pivotY
  • альфа
  • х
  • у

Источник: Документы