Android-Eigenschaften, die mit ObjectAnimator animiert werden können

Lesezeit: 3 Minuten

Benutzer-Avatar
Kathal Comerford

Ich fange an, mit Eigenschaftsanimationen über Ansichtsanimationen herumzuspielen, da ich eine Ansicht habe, die skaliert und andere aus dem Weg räumen muss, wie dies der Fall ist. Ich habe einige Beispiele gesehen, aber ich frage mich nur, ob es irgendwo eine Liste der Eigenschaften gibt, die mit diesen Klassen geändert werden können. Zum Beispiel habe ich ein Tutorial gesehen, das eine schnelle Rotation mit:

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

Das ist ziemlich cool, aber ich hätte die Rotationseigenschaft nicht gekannt, wenn es nicht genau dieses Tutorial gegeben hätte. Gibt es eine umfassende Liste dessen, was getan werden kann? Die besondere Eigenschaft, die ich animieren möchte, ist das Gewicht einer Ansicht in einem LinearLayout, falls jemand dazu einen speziellen Rat hat.

Besser spät als nie, deshalb hier die umfassende Liste der Eigenschaften, die mit ObjectAnimator animiert werden können.

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

  • Ich bin gespannt, ob das die vollständige Liste ist? Auf 9OldAndroid gibt es ein Beispiel, das die Hintergrundfarbe einer Ansicht animiert, die nicht in der Liste angegeben ist. nineoldandroids.com ObjectAnimator.ofInt(this, "backgroundColor", /*Red*/0xFFFF8080, /*Blue*/0xFF8080FF);

    – Irgendein Noob-Student

    19. Juni 2014 um 22:39 Uhr


  • Die Liste ist nicht vollständig, es gibt eine Liste “xFraction” und “yFraction”, die funktioniert (sah in Beispiel für DevBytes-Sliding-Fragmente)

    – Matthieu Harle

    17. September 2014 um 19:22 Uhr

  • Eine vollständige Liste wird es nicht geben, da sie mit allem funktioniert, was einen korrekten Getter/Setter (Reflexion) für Namen hat, oder indem eine benutzerdefinierte Eigenschaft definiert wird. Siehe stackoverflow.com/a/28381280/1290264.

    – bkorso

    29. Oktober 2015 um 16:08 Uhr

  • Diese Liste ist nicht einmal im Entferntesten vollständig, da sie für jedes zugängliche Objekt mit jedem zugänglichen Setter verwendet werden kann.

    – Jason Hartley

    19. Juli 2016 um 16:03 Uhr

Benutzer-Avatar
bkorso

Das Dokumente implizieren, dass jeder Wert mit verwendet werden kann ObjectAnimator solange Sie einer Namenskonvention folgen:

  1. Die Objekteigenschaft, die Sie animieren, muss eine Setter-Funktion (in Kamelfall) in Form von haben set<propertyName>(). Da der ObjectAnimator die Eigenschaft während der Animation automatisch aktualisiert, muss er mit dieser Setter-Methode auf die Eigenschaft zugreifen können. Wenn der Eigenschaftsname beispielsweise lautet fooSie müssen eine haben
    setFoo() Methode. Wenn diese Setter-Methode nicht existiert, haben Sie drei Möglichkeiten:

    • Fügen Sie die Setter-Methode zur Klasse hinzu, wenn Sie die Rechte dazu haben.
    • Verwenden Sie eine Wrapper-Klasse, zu deren Änderung Sie berechtigt sind, und lassen Sie diesen Wrapper den Wert mit einer gültigen Setter-Methode empfangen und an das ursprüngliche Objekt weiterleiten.
    • Verwenden Sie stattdessen ValueAnimator.
  2. […]

Zu deiner Frage, View hat die Methode setRotation(float) — das gibt Ihnen einen Hinweis, dass es verwendet werden kann. Insbesondere hier ist, wie Sie es mit einem bestimmten tun würden 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

Weitere Informationen zu den Erwartungen finden Sie in den Dokumenten ObjectAnimator.

Benutzer-Avatar
Sagar

Hier ist die umfassende Liste der Immobiliennamen, nach denen Sie suchen:

  • Drehung
  • RotationX
  • RotationY
  • ÜbersetzungX
  • ÜbersetzungY
  • SkalaX
  • scaleY
  • PivotX
  • PivotY
  • Alpha
  • x
  • j

Quelle: Dokumente

Verwenden “übersetzenX” oder “transalteY„A bewegen <group>
Schauen Sie sich an VektorZeichnbar

1180630cookie-checkAndroid-Eigenschaften, die mit ObjectAnimator animiert werden können

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy