Laut der Android-Entwickler-Website können wir AnimatorSet
class programmatisch laden aus der XML-Datei, die sich auf dem folgenden Pfad befindet: res/animator/filename.xml
. Also habe ich ein Beispielprojekt erstellt und versucht zu sehen, ob es tatsächlich funktioniert, und es nicht; nichts passiert. Es wäre sehr schön, wenn ich verstehen könnte, was fehlt und / oder was ich falsch gemacht habe. Danke im Voraus! Unten ist meine Animator XML-Datei und Java-Code zum Laden der XML:
res / animator / sample.xml:
%Vor%Und hier sind meine Java-Codes zum Laden der obigen XML-Datei:
%Vor% Sie setzen ein anderes Set res/animator/sample.xml
. Vereinfachen Sie es
Sie blähen das AnimatorSet wie folgt auf
%Vor%Bisher habe ich keine Möglichkeit gefunden, objectAnimator von xml nach Java zu pumpen. Ich muss es in ein Set
einfügenDies ist ein Fehler in dem Beispiel in der Dokumentation.
Versuchen Sie, android:valueType="intType"
in android:valueType="floatType"
zu ändern.
Dies funktioniert im Falle von @RaymondChenon , da er nicht ausdrücklich die
android:valueType
bis int
, so dass das System den Standardwert 1 float
Das Problem hier ist, dass Sie android:valueType="intType"
in Ihrem Animator angeben, der android:valueType="floatType"
für die Eigenschaft android:propertyName="x"
ist, die Sie animieren.
Suchen Sie auf der Laufzeitumgebung nach Setter für die Eigenschaft, die Sie animieren möchten.
Wie in Ihrem Fall wird es nach setX()
suchen, aber da Sie den Argumenttyp vom Typ int
definieren, wird eine Nichtübereinstimmung verursacht, da es keine solche Methode gibt. Ich weiß nicht, warum dies nicht zu einem Absturz führt.
Sehen Sie sich die Eigenschaften der Klasse Ansicht an. Es gibt eine Methode setX (float)
Zum besseren Verständnis können Sie StackOverflow-Frage
nachlesen