2013-02-22 7 views
27
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); 
} 

voglio ripetere questo di TextView animazione loding fino gotting un inforamtion dal GPSRipetere l'animazione Android

risposta

71

Come this.

animation.setRepeatCount(Animation.INFINITE); 
+0

di ringraziamento è funziona bene :) – EMIN

+0

Cheers, è solito per accettare una risposta corretta però. – alex

5
fadeIn.setRepeatCount(int count) 

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

è possibile utilizzare questi metodi per controllare ripetizione.

attuare questo, se necessario

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


      } 
     }); 

se volete fermare l'animazione suddennly. use yourview.clearAnimation() Spero che questo aiuti.

+0

[setRepeatMode] (http://developer.android.com/reference/android/view/animation/Animation.html#setRepeatMode (int)) prevede solo RESTART o REVERSE. INFINITE deve essere dato solo a setRepeatCount. –

10

Si potrebbe fare questo

animation.setRepeatCount(Animation.INFINITE); //Repeats animation indefinitely. 
+0

Funziona per me. Semplice ed efficace – Bundeeteddee

8

Android ti dà meccanismi eleganti per rappresentare il processo di caricamento. È possibile utilizzare un valore indeterminato ProgressBar o uno ImageView con un'animazione scala/alfa, invece di animare lo stesso TextView.

Forse potresti trovare utile questa animazione, per animare alfa e scalare allo stesso tempo. Variare i parametri per la preferenza:

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> 

poi lanciarlo nel codice:

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

E per fermarlo:

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

È anche possibile utilizzare librerie come ProgressButtonView per supportare sia l'interazione dell'utente che il processo di caricamento n lo stesso widget.

speranza che qualcuno di questi soluzioni risultato utile a qualcuno :)

alex
+0

Bello grazie – Sam