Animazione dell'immagine in Android
-
29-09-2020 - |
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>
. 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.