2016-10-26 4 views
0

ich die folgende einfache Animation in Android zu tun:Animation, Android Starten Sie sofort

<?xml version="1.0" encoding="UTF-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:repeatCount="infinite" 
    android:duration="2000" 
    android:interpolator="@android:anim/linear_interpolator"/> 

Ich nenne die Animation wie folgt aus:

@Override 
public void onWindowFocusChanged (boolean hasFocus) { 
    if (hasFocus) { 
     tvload.startAnimation(anim); 
    } 
} 

Die Animation beginnt sofort in Pre-Lutscher Geräte aber in Lollipop und Marshmallow es dauert ca. 1 Sekunde für den Start. Diese Animation sollte nach der Absicht beginnen.

Gibt es eine Möglichkeit, diese Animation sofort zu starten, anstatt die Ladezeit von 1 Sekunde zu haben?

Antwort

0

Ich würde die View#post() Methode versuchen. Es wird den Code ausführen, den Sie nächsten UI-Thread-Zyklus veröffentlichen, der normalerweise ist, sobald die Ansicht sichtbar ist.

tvload.post(new Runnable() { 
    @Override 
    public void run() { 
    tvload.startAnimation(anim); 
    } 
}; 
+0

Ich habe es versucht und funktioniert nicht, es dauert ein paar Sekunden auch, danke! –

Verwandte Themen