2016-03-28 10 views
3

Ich versuche, meine TextView unendlich zu animieren. Ich habe sequential.xml geschrieben, die den Animationseffekt definiert, wie nachfolgend beschrieben:Android TextView Animation unendliche Wiederholung funktioniert nicht

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fillAfter="true" 
    android:interpolator="@android:anim/linear_interpolator" > 


    <!-- Move --> 
    <translate 
     android:duration="800" 
     android:fillAfter="true" 
     android:fromXDelta="0%p" 
     android:startOffset="300" 
     android:toXDelta="2%p" /> 

    <translate 
     android:duration="800" 
     android:fillAfter="true" 
     android:fromXDelta="0%p" 
     android:startOffset="1900" 
     android:toXDelta="-2%p" /> 

</set> 

Der Code Aktivität, die diese Animation auf den Textview zuweisen wird, wie unten angegeben:

TextView tv = new TextView(this); 
tv.setText(customObject.getText()); 
Animation animSequential; 
animSequential = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequential_horizontal); 
animSequential.setRepeatMode(Animation.RESTART); 
animSequential.setRepeatCount(Animation.INFINITE); 
tv.startAnimation(animSequential); 

Aber es wiederholt nicht die Animation und kommt am Ende der ersten Iteration zum Stillstand. Bitte lassen Sie mich wissen, wenn ich etwas falsch verstanden habe.

+0

siehe, ob http://stackoverflow.com/questions/4480652/android-animation-does-not-repeat hilft –

Antwort

2

Versuchen Sie dies im XML-Code. Der Java Code hat nicht funktioniert und ich habe damit gut gelöst. gilt dies nur in Ihrem Code:

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false" > 

    <rotate 
     android:fromDegrees="0" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:toDegrees="360" 
     android:duration="1000" 
     android:repeatCount="infinite" 
     android:repeatMode="restart"/> 

</set> 

die letzten beiden Zeilen von <rotate> in Ihrem Code hinzufügen. In Ihrem Fall innerhalb der beiden Komponenten <translate> und das Äquivalent von Java-Code entfernen:

animation.setRepeatMode(Animation.INFINITE); 
animation.setRepeatCount(Animation.INFINITE); 

Dieser Code wird ein Objekt auf sich selbst machen drehen auf unbestimmte Zeit, wenn jemand dient.

Viel Glück !!

Verwandte Themen