Wie lade ich animator xml-Datei programmatisch auf Android?

7

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%     
shaunkawano 16.11.2015, 21:31
quelle

2 Antworten

20

Sie setzen ein anderes Set res/animator/sample.xml . Vereinfachen Sie es

%Vor%

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ügen     
Raymond Chenon 01.08.2016, 12:35
quelle
0

Dies 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

annimmt

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     
DeltaCap 08.03.2018 07:09
quelle

Tags und Links