diff --git a/explosionfield/src/main/java/tyrantgit/explosionfield/ExplosionField.java b/explosionfield/src/main/java/tyrantgit/explosionfield/ExplosionField.java index f4f06e1..3f012b7 100644 --- a/explosionfield/src/main/java/tyrantgit/explosionfield/ExplosionField.java +++ b/explosionfield/src/main/java/tyrantgit/explosionfield/ExplosionField.java @@ -36,9 +36,20 @@ public class ExplosionField extends View { + public interface Listener { + void onExplosionFinish(); + } + private List mExplosions = new ArrayList<>(); private int[] mExpandInset = new int[2]; + private Listener listener; + + public ExplosionField listener(Listener listener) { + this.listener = listener; + return this; + } + public ExplosionField(Context context) { super(context); init(); @@ -105,6 +116,14 @@ public void onAnimationUpdate(ValueAnimator animation) { } }); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (listener != null) { + listener.onExplosionFinish(); + } + } + }); animator.start(); view.animate().setDuration(150).setStartDelay(startDelay).scaleX(0f).scaleY(0f).alpha(0f).start(); explode(Utils.createBitmapFromView(view), r, startDelay, ExplosionAnimator.DEFAULT_DURATION);