From 8aaa36fde66a8b2bdd70cebedd09fdaf1a98b447 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 5 May 2015 13:20:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=8D=D1=84=D1=84=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D1=81=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=B8?= =?UTF-8?q?=D0=B8=20=D1=81=D0=BF=D1=80=D0=B0=D0=B9=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../everlastingsummer/AnimatableImageView.java | 13 ++++++++++++- src/com/annimon/everlastingsummer/ViewActivity.java | 12 +++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/annimon/everlastingsummer/AnimatableImageView.java b/src/com/annimon/everlastingsummer/AnimatableImageView.java index c7736ed..591961e 100644 --- a/src/com/annimon/everlastingsummer/AnimatableImageView.java +++ b/src/com/annimon/everlastingsummer/AnimatableImageView.java @@ -22,9 +22,12 @@ import com.annimon.everlastingsummer.transitions.Transitions; */ public class AnimatableImageView extends ImageView { + private static final ColorDrawable NONE = new ColorDrawable(); + private static final SparseArray colors; static { colors = new SparseArray(); + colors.append(0, NONE); colors.append(Color.WHITE, new ColorDrawable(Color.WHITE)); colors.append(Color.BLACK, new ColorDrawable(Color.BLACK)); colors.append(0xFFEE1111, new ColorDrawable(0xFFEE1111)); @@ -63,7 +66,7 @@ public class AnimatableImageView extends ImageView { public int setImageDrawable(Drawable drawable, String effect) { previous = getDrawable(); super.setImageDrawable(drawable); - return setAnimationEffect(""); + return setAnimationEffect(effect); } @Override @@ -87,6 +90,14 @@ public class AnimatableImageView extends ImageView { } return result; } + + public void hideDrawable(String effect, Runnable runnable) { + final int delay = setImageDrawable(NONE, effect); + if (delay == 0) runnable.run(); + else { + postDelayed(runnable, delay); + } + } private int setAnimationEffect(String animEffect) { final String effect = animEffect.toLowerCase(Locale.ENGLISH); diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index 7a1b75d..49f5af8 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -344,7 +344,17 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch public void hideSprite(String whoid, String effect) { if (!spriteInContainer.containsKey(whoid)) return; - final ImageView img = spriteInContainer.get(whoid); + final AnimatableImageView img = spriteInContainer.get(whoid); + img.hideDrawable(effect, new Runnable() { + @Override + public void run() { + hide(img); + } + }); + } + + private void hide(ImageView img) { + if (img == null) return; container.removeView(img); spriteInContainer.remove(img); safeClearImageView(img);