Ich habe eine Aktivität mit einer Symbolleiste (die Teil der SharedElements Aktivität Eingabe Animation ist) und unter dieser Symbolleiste sind drei ImageViews horizontal nebeneinander. In ihrer XML-Implementierung sind alle drei INVISIBLE gesetzt.ImageViews Flackern, bevor sie sichtbar sein sollten
Was ich versuche zu tun ist, sie zu animieren, sequenziell hinter der Symbolleiste zu "fallen". Mein Implemenation ist dies:
int delay = 500;
for (int y = 0; y < 3; y++) {
ObjectAnimator oa = ObjectAnimator.ofFloat(imageViews[y],
"translationY", -300, 0);
oa.setDuration(600);
oa.setStartDelay(delay);
oa.start();
imageViews[y].setVisibility(View.VISIBLE);
delay = delay+100;
}
}
Wie Sie sehen, ich bin Iterieren durch die drei ImageViews und eine Animation starten für jedes von einem -300 X-Position zu gehen (was hinter der Symbolleiste), um ihre normale Position. Diese Animation funktioniert super - so wie ich es möchte, aber das Problem ist, dass kurz bevor alle ImageViews kurz flackern, was ich nicht erklären kann. Ich habe das Debuggen versucht, aber während ich durch die Zeilen dieses Teils gehe, bleibt mein Bildschirm schwarz. Ich kann also nicht feststellen, wo/warum die Views sichtbar werden.
Vielleicht können Sie mir helfen, meinen Fehler zu finden.
Danke, das ist mein Arbeits Code:
Für alle drei ImageViews:
ObjectAnimator anim1Pin = ObjectAnimator.ofFloat(img_pinned, "translationY", -300, 0);
anim1Pin.setDuration(ANIMATON_DURATION);
anim1Pin.setStartDelay(300);
anim1Pin.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
img_pinned.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
Und die AnimatorSet:
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(anim1Pin, anim2Alarm, anim3LED);
animatorSet.start();
Danke, es funktioniert und ich habe meinen Eröffnungsbeitrag aktualisiert. Aber dein GONE-Vorschlag war nicht optimal, weil die Gravitation der GridView, in der die ImageViews sind, horizontal zentriert ist, so dass die Icons nur von der Mitte herunterkamen, um ihre Position zu verschieben, wenn das nächste Bild sichtbar wurde. Unsichtbar ist die bessere Wahl über Gone – Eyntschl
Froh, dass ich helfen konnte, hatte nicht viel von dem ursprünglichen Beitrag zu gehen, aber ich bin froh, dass mein Vorschlag geholfen hat. – Ali