Android-Animation wiederholen

Lesezeit: 3 Minuten
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.vitesse);

    gpsManager = new GPSManager();

    gpsManager.startListening(getApplicationContext());
    gpsManager.setGPSCallback(this);
    Typeface tf = Typeface.createFromAsset(getAssets(),
            "font/DS-DIGI.TTF");
     TextView  loding =(TextView)findViewById(R.id.info_message);
            loding.setTypeface(tf);
            AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f ) ; 
            AlphaAnimation fadeOut = new AlphaAnimation( 1.0f , 0.0f ) ; 
            loding.startAnimation(fadeIn);
            loding.startAnimation(fadeOut);
            fadeIn.setDuration(500);
            fadeOut.setDuration(1200);
            fadeOut.setStartOffset(1200+fadeIn.getStartOffset()+1200);     
            measurement_index = AppSettings.getMeasureUnit(this);
}

Ich möchte dies der Textansicht-Loding-Animation wiederholen, bis ich eine Information vom GPS bekomme

Wie Dies.

animation.setRepeatCount(Animation.INFINITE);

  • Sie können es auch im XML definieren, wie: android:repeatCount = “infinite”

    – NiemandIrgendwo

    1. Juli 2020 um 7:36 Uhr


Benutzer-Avatar
voghDev

Android stellt Ihnen elegante Mechanismen zur Verfügung, um den Ladevorgang darzustellen. Sie könnten ein unbestimmtes verwenden ProgressBaroder ein ImageView mit einer Scale/Alpha-Animation, anstatt die zu animieren TextView selbst.

Vielleicht finden Sie diese Animation nützlich, um Alpha und Skalierung gleichzeitig zu animieren. Variieren Sie die Parameter nach Ihren Wünschen:

file res/anim/alpha_scale_animation.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
    android:fromXScale="0.7"
    android:toXScale="1.0"
    android:fromYScale="0.7"
    android:toYScale="1.0"
    android:pivotX="50%p"
    android:pivotY="50%p"
    android:duration="4000"
    android:repeatCount="infinite"
    />

<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="2000"
    android:repeatMode="reverse"
    android:repeatCount="infinite"
    />
</set>

dann, um es in Ihrem Code zu starten:

Animation connectingAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.alpha_scale_animation);
myView.startAnimation(connectingAnimation);

Und um es zu stoppen:

myView.clearAnimation();
connectingAnimation.cancel();
connectingAnimation.reset();

Sie können auch Bibliotheken wie verwenden ProgressButtonView um sowohl die Benutzerinteraktion als auch den Ladeprozess im selben Widget zu unterstützen.

Ich hoffe, dass eine dieser Lösungen für jemanden nützlich ist 🙂

  • Die Dokumentation für cancel() (Ich benutze ValueAnimator, eine Unterklasse) gibt an, dass sie sich im selben Thread wie der Aufrufer befinden muss. Das ist ziemlich umständlich, aber es scheint trotzdem zu funktionieren! (Für andere, die die ValueAnimator-Klasse verwenden, gibt es keine reset(); scheint es nicht zu brauchen.)

    – SMBiggs

    17. März 2019 um 3:06 Uhr

  • Sie haben Recht. reset() ist nicht notwendig u cancel() sollte genug sein

    – voghDev

    5. Januar 2021 um 10:46 Uhr

Benutzer-Avatar
anzaidemirzoi

Sie können diese Methoden verwenden, um das Wiederholungsverhalten zu steuern:

fadeIn.setRepeatCount(int count) // or Animation.INFINITE

fadeIn.setRepeatMode(Animation.REPEAT) // or any other repeat mode, such as Animation.REVERSE

Implementieren Sie diese Listener, falls erforderlich:

// anim = your animation    
anim.setAnimationListener(new AnimationListener() {
            public void onAnimationStart(Animation arg0) 
            {
                // TODO Auto-generated method stub
            }
            
            public void onAnimationRepeat(Animation arg0)
            {
                // TODO Auto-generated method stub
            }
            
            public void onAnimationEnd(Animation arg0)
            {
                // TODO Auto-generated method stub
            }
        });

Wenn Sie Ihre Animation plötzlich stoppen möchten, verwenden Sie yourView.clearAnimation() Ich hoffe das hilft.

  • setRepeatMode erwartet nur RESTART oder REVERSE. INFINITE sollte nur an setRepeatCount übergeben werden.

    – Rupert Rawnsley

    15. Januar 2016 um 12:10 Uhr


Um die Animation zu wiederholen, fügen Sie einfach den Code in die XML-Datei ein, die sich in der Animationsordnerdatei befindet, in der wir ein Animationsobjekt erstellen.

  1. android:repeatCount=”unendlich”
  2. android:repeatMode=”Neustart”

Setzen Sie die Wiederholungszahl auf -1, dann wird unendlich animiert

  • Dies ist eine gültige Antwort, aber es kann nützlich sein, ein Codebeispiel einzufügen. Es folgt auch nicht unbedingt den besten Codierungspraktiken, indem es einen statischen Wert verwendet, anstatt auf eine offizielle Variable (z Animation.REPEAT). Aber das macht es nicht zu einer schlechten Antwort – willkommen in der Community! 🙂

    – Besorgter Hobbit

    16. Februar um 14:57 Uhr

  • Dies ist eine gültige Antwort, aber es kann nützlich sein, ein Codebeispiel einzufügen. Es folgt auch nicht unbedingt den besten Codierungspraktiken, indem es einen statischen Wert verwendet, anstatt auf eine offizielle Variable (z Animation.REPEAT). Aber das macht es nicht zu einer schlechten Antwort – willkommen in der Community! 🙂

    – Besorgter Hobbit

    16. Februar um 14:57 Uhr

1176840cookie-checkAndroid-Animation wiederholen

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

Privacy policy