Ich habe einige Probleme mit einer Diashow, die ich erstelle.
Ich habe 2 Animationen in XML zum Ein- und Ausblenden erstellt:
fadein.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="2000"/>
</set>
fadeout.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="2000"/>
</set>
Wenn Sie versuchen, Bilder aus einer ImageView mithilfe des Überblendungseffekts zu ändern, wird das aktuell angezeigte Bild ausgeblendet und ein anderes eingeblendet. Da ich bereits ein Bild festgelegt habe, kann ich dieses Bild ohne ausblenden Problem damit:
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
imageView.startAnimation(fadeoutAnim);
Aber dann stelle ich das nächste Bild ein, das angezeigt werden soll:
imageView.setImageBitmap(secondImage);
Es wird nur in der imageView angezeigt, und wenn ich die Animation einstelle, wird das Bild ausgeblendet, eingeblendet ... Gibt es eine Möglichkeit, dies zu beheben, wenn ich imageView.setImageBitmap (secondImage) mache? Befehl, wird das Bild nicht sofort angezeigt und nur, wenn die Einblendanimation ausgeführt wird?
Ich wollte das gleiche Ziel wie Sie erreichen, deshalb habe ich die folgende Methode geschrieben, die genau das tut, wenn Sie eine ImageView und eine Liste mit Verweisen auf Bildzeichnungen übergeben.
quelle
Haben Sie daran gedacht, TransitionDrawable anstelle von benutzerdefinierten Animationen zu verwenden? https://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html
Ein Weg, um das zu erreichen, wonach Sie suchen, ist:
quelle
Ich habe die verwendete FadeIn-Animation verwendet, um ein neues Bild durch ein altes zu ersetzen
quelle
Basierend auf der Lösung von Aladin Q ist hier eine Hilfsfunktion, die ich geschrieben habe und die das Bild in einer Bildansicht ändert, während ein wenig Ausblenden / Einblenden der Animation ausgeführt wird:
quelle
Sie können dies durch zwei einfache Punkte tun und Ihren Code ändern
1.Stellen Sie in Ihrem XML-Ordner im Animationsordner Ihres Projekts die Ein- und Ausblenddauer ungleich ein
2.Stellen Sie in Ihrer Java-Klasse vor dem Start der Ausblendanimation die zweite Sichtbarkeit der Bildansicht ein. Nachdem die Ausblendanimation gestartet wurde, stellen Sie die zweite Sichtbarkeit der Bildansicht ein, die Sie sichtbar einblenden möchten
fadeout.xml
fadein.xml
In deiner Java-Klasse
quelle
Für unendliches Ein- und Ausblenden
quelle
Ich verwende diese Art von Routine zum programmgesteuerten Verketten von Animationen.
quelle
Der beste und einfachste Weg war für mich dieser ..
-> Erstellen Sie einfach einen Thread mit Handler, der sleep () enthält.
quelle
Dies ist wahrscheinlich die beste Lösung, die Sie bekommen werden. Simpel und einfach. Ich habe es auf udemy gelernt. Angenommen, Sie haben zwei Bilder mit den Bild-IDs id1 und id2, und derzeit ist die Bildansicht auf id1 festgelegt, und Sie möchten sie jedes Mal, wenn jemand darauf klickt, in das andere Bild ändern. Dies ist also der Basiscode in
MainActivity.java
DateiIch hoffe das wird sicherlich helfen
quelle