Estoy empezando a jugar con Propiedad Animaciones ver más animaciones como tengo un punto de vista de que las necesidades a escala y empujan a otros de la manera como lo hace. He visto algunos ejemplos, pero me pregunto si no es en cualquier lugar que proporciona una lista de las propiedades que pueden ser modificados por el uso de estas clases. Por ejemplo, vi un tutorial que hizo un rápido giro:

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

Que es bastante fresco, pero yo no habría sabido la rotación de la propiedad si no por que exactamente el tutorial, hay alguna lista completa de lo que se puede hacer? La propiedad particular, quiero animar es el peso de una vista dentro de un LinearLayout, si alguien tiene algún consejo sobre que específicamente.

4 Comentarios

  1. 57

    Mejor tarde que nunca, así que aquí está la lista completa de las propiedades que pueden ser animados con ObjectAnimator.

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

    • Tengo curiosidad de saber si esa es la lista completa? En 9OldAndroid, hay un ejemplo que anima el color de fondo de una vista, que no está especificado en la lista. nineoldandroids.com ObjectAnimator.ofInt(this, "backgroundColor", /*Red*/0xFFFF8080, /*Blue*/0xFF8080FF);
    • La lista no es completa, no hay en la lista de «xFraction» y «yFraction» que funciona (el que vimos en DevBytes Deslizamiento Fragmentos de ejemplo)
    • Una lista completa no existe, dado que funciona con cualquier cosa que tenga correctamente el nombre de getter/setter (reflexión), o mediante la definición de una Propiedad personalizada. Consulte stackoverflow.com/a/28381280/1290264.
    • Esta lista no es ni remotamente integral, ya que puede ser utilizado en cualquier accesible objeto con cualquier accesible setter.
  2. 24

    La Docs implica que cualquier valor puede ser utilizado con ObjectAnimator siempre y cuando se siga una convención de nomenclatura:

    1. El objeto de la propiedad que usted está animando debe tener una función setter (en camel case) en la forma de set<propertyName>(). Porque
      el ObjectAnimator automáticamente las actualizaciones de la propiedad durante
      la animación, debe ser capaz de acceder a la propiedad con esta carta
      método. Por ejemplo, si el nombre de la propiedad es foo, usted necesita tener un
      setFoo() método. Si este método setter no existe, tiene tres
      opciones:

      • Agregar el método setter a la clase si dispone de los derechos para
        hacerlo.
      • El uso de una clase contenedora que usted tiene derecho a cambiar y han
        este envoltorio recibir el valor válido de método setter y adelante
        al objeto original.
      • Uso ValueAnimator lugar.
    2. […]

    Con respecto a tu pregunta, Ver tiene el método setRotation(float), lo que le da una pista de que puede ser utilizado. En particular, aquí es cómo usted lo haría con un particular 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

    Puede leer la documentación para más detalles sobre las expectativas de ObjectAnimator.

  3. 16

    Aquí está la lista completa de los nombres de propiedad que usted está buscando:

    • rotación
    • rotationX
    • rotationY
    • translationX
    • translationY
    • scaleX
    • scaleY
    • pivotX
    • pivotY
    • alfa
    • x
    • y

    Fuente: Docs

Dejar respuesta

Please enter your comment!
Please enter your name here