web-dev-qa-db-fra.com

Répéter l'animation Android

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);
}

Je souhaite répéter cette opération d’animation de visualisation de texte jusqu’à obtenir une information du GPS.

36
EMIN

Comme ceci .

animation.setRepeatCount(Animation.INFINITE);
93
alex

Android vous propose des mécanismes élégants pour représenter le processus de chargement. Vous pouvez utiliser une ProgressBar indéterminée ou une ImageView avec une animation échelle/alpha au lieu d'animer la TextView elle-même.

Peut-être trouverez-vous cette animation utile pour l'animation d'alpha et d'échelle en même temps. Variez les paramètres selon vos préférences:

file R.anim.alpha_scale_animation

<?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>

puis pour le lancer dans votre code:

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

Et pour l'arrêter:

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

Vous pouvez également utiliser des bibliothèques telles que ProgressButtonView pour que la même interaction utilisateur et le processus de chargement soient pris en charge dans le même widget.

J'espère que ces solutions seront utiles à quelqu'un :)

12
voghDev
fadeIn.setRepeatCount(int count)

fadeIn.setRepeatMode(AlphaAnimation.INFINITE(or any other repeat mode reletaed yo your usage)) 

vous pouvez utiliser ces méthodes pour contrôler la répétition.

mettre en œuvre si nécessaire

    //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)
            {


            }
        });

si vous voulez arrêter votre animation soudainement, utilisez votre image.clearAnimation ().

6
anzaidemirzoi

pour répéter l'animation, ajoutez simplement le code dans le fichier XML qui se trouve dans le dossier de dossier anim dans lequel nous créons un objet d'animation.

  1. Android: repeatCount = "infini"
  2. Android: repeatMode = "restart"
0
kiran bankar