Domanda

Devo ripetere la sequenza dell'immagine che sto usando con il filo e l'animazioneRawakable ma non funziona continuamente.Non voglio interrompere questa animazione fino a quando non viene avviata la prossima attività tramite il pulsante Fare clic su Evento.

Ecco il mio codice Java:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);{

final ImageView splashImage=(ImageView)findViewById(R.id.heartFunction);
     splashImage.setBackgroundResource(R.drawable.slide_right);
  splashAnimation = (AnimationDrawable) splashImage.getBackground();
}




public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    if ( isFocused ) {
        //isFocused = false;

        splashAnimation.start();
        var=false;
        new Thread(new Runnable() {
        public void run() {
            try {
                Thread.sleep(SPLASH_DISPLAY_LENGTH);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }).start();
}
.

slide_right.xml: -

<?xml version="1.0" encoding="utf-8"?>
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">

<item android:drawable="@drawable/heartcolored0" android:duration="200" />
<item android:drawable="@drawable/heartcolored2" android:duration="200" />
<item android:drawable="@drawable/heartcolored4" android:duration="200" />
<item android:drawable="@drawable/heartcolored5" android:duration="200" />
<item android:drawable="@drawable/heartcolored6" android:duration="200" />
<item android:drawable="@drawable/heartcolored7" android:duration="200" />
<item android:drawable="@drawable/heartcolored8" android:duration="200" />
<item android:drawable="@drawable/heartcolored9" android:duration="200" />
<item android:drawable="@drawable/heartcolored10" android:duration="200" />
<item android:drawable="@drawable/heartcolored11" android:duration="200" />
<item android:drawable="@drawable/heartcolored12" android:duration="200" />
<item android:drawable="@drawable/heartcolored13" android:duration="200" />

</animation-list>
.

È stato utile?

Soluzione

Se si desidera eseguire la tua animazione, è possibile eseguire il controllo del android:oneshot="false"

Stavi dicendo prima solo a correre una volta.

Se si desidera eseguire un'animazione fino a quando non si fa clic sullo schermo per andare all'attività successiva.Avvia l'animazione quando la funzione onwindowfocuschanged

@Override
public void onWindowFocusChanged(boolean hasFocus){
    splashanimation.start();
}
.

Quindi utilizzare un ontouchevent per prendere il tatto, avviare una nuova attività e terminare la vecchia attività.

@Override
public boolean onTouchEvent(MotionEvent event){
     if (event.getAction() == MotionEvent.ACTION_DOWN) {
          Intent i = new Intent(Anim.this, Main.class);
          startActivity(i);
          finish();
     }
return true;
}
.

Spero che questo aiuti, la tua domanda è molto difficile da leggere / capire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top