Lors d'un événement tactile, une vue personnalisable est créée, ajoutée à la vue racine, de sorte qu'elle s'affiche à l'écran, puis une animation de fondu pour l'effacer . Tout fonctionne, mais pas sous pression!Comment vous assurer que la vue est supprimée après une animation sur des touches répétées
Lorsque j'exécute à plusieurs reprises l'événement tactile, par exemple 3 touches rapides dans la seconde, le dessin personnalisable est laissé de façon inattendue à l'écran.
Pourquoi est-ce? Je veux le retirer à chaque fois. Voici le code:
/*
* Adds view and fades out
*/
public void fadeoutView(final View v){
if (rootView != null) {
rootView.removeView(v);
}
rootView.addView(v);
Log.v(LOG_TAG, "Fadeout called");
final Animation fadeOut = new AlphaAnimation(1.0f, 0.0f);
fadeOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.v(LOG_TAG, "Fadeout onAnimationStart t:" + System.currentTimeMillis());
}
@Override
public void onAnimationEnd(Animation animation) {
Log.v(LOG_TAG, "Fadeout onAnimationEnd t:" + System.currentTimeMillis());
if (v != null && rootView != null) {
rootView.removeView(v);
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
fadeOut.setFillAfter(true); // Want to keep affect
fadeOut.setInterpolator(new DecelerateInterpolator());
fadeOut.setStartOffset(0);
fadeOut.setDuration(500);
if (v != null) {
v.startAnimation(fadeOut);
}
}
C'est exécuté à partir du UIThread au sein OnTouch public boolean (Voir la vue, MotionEvent MotionEvent)