From 8d9ea21306d0fe3778694cfc6c463db446251c90 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 4 May 2015 16:18:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D1=8D=D1=84=D1=84=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../everlastingsummer/AnimatableImageView.java | 17 +++++++++-------- src/com/annimon/everlastingsummer/Parser.java | 2 +- .../annimon/everlastingsummer/ViewActivity.java | 11 ++++++++--- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/com/annimon/everlastingsummer/AnimatableImageView.java b/src/com/annimon/everlastingsummer/AnimatableImageView.java index ac9453f..d4ce006 100644 --- a/src/com/annimon/everlastingsummer/AnimatableImageView.java +++ b/src/com/annimon/everlastingsummer/AnimatableImageView.java @@ -64,10 +64,10 @@ public class AnimatableImageView extends ImageView { setImageResource(resId, ""); } - public void setImageResource(int resId, String effect) { + public int setImageResource(int resId, String effect) { previous = getDrawable(); super.setImageResource(resId); - setAnimationEffect(effect); + return setAnimationEffect(effect); } @Override @@ -75,10 +75,10 @@ public class AnimatableImageView extends ImageView { setImageDrawable(drawable, ""); } - public void setImageDrawable(Drawable drawable, String effect) { + public int setImageDrawable(Drawable drawable, String effect) { previous = getDrawable(); super.setImageDrawable(drawable); - setAnimationEffect(""); + return setAnimationEffect(""); } @Override @@ -86,15 +86,15 @@ public class AnimatableImageView extends ImageView { setImageBitmap(bm, ""); } - public void setImageBitmap(Bitmap bm, String effect) { + public int setImageBitmap(Bitmap bm, String effect) { previous = getDrawable(); super.setImageBitmap(bm); - setAnimationEffect(effect); + return setAnimationEffect(effect); } - private void setAnimationEffect(String animEffect) { + private int setAnimationEffect(String animEffect) { final String effect = animEffect.toLowerCase(Locale.ENGLISH); - if (!animations.containsKey(effect)) return; + if (!animations.containsKey(effect)) return 0; final Anim anim = animations.get(effect); @@ -105,6 +105,7 @@ public class AnimatableImageView extends ImageView { final TransitionDrawable transition = new TransitionDrawable(layers); setImageDrawable(transition); transition.startTransition(anim.duration); + return anim.duration; } private static class Anim { diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index 83e0efa..114736b 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -350,7 +350,7 @@ public final class Parser { final String name = consume(TokenType.WORD).getText(); final String effect = matchWithEffect(); ViewActivity.getInstance().background(type, name, effect); - return false; + return true; } private boolean show() { diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index 052b09a..934f32b 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -285,16 +285,21 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch backgroundName = name; text(""); spritesClear(); - if (name.equalsIgnoreCase("black")) background.setImageResource(android.R.color.black, effect); - else if (name.equalsIgnoreCase("white")) background.setImageResource(android.R.color.white, effect); + int animationTime = 0; + if (name.equalsIgnoreCase("black")) + animationTime = background.setImageResource(android.R.color.black, effect); + else if (name.equalsIgnoreCase("white")) + animationTime = background.setImageResource(android.R.color.white, effect); else { try { - background.setImageBitmap(IOUtil.readBitmap(PathResolver.background(type, name)), effect); + animationTime = background.setImageBitmap(IOUtil.readBitmap( + PathResolver.background(type, name)), effect); } catch (Exception ioe) { if (Logger.DEBUG) Logger.log("background: " + type + ", " + name, ioe); background.setImageResource(android.R.color.black); } } + pause(animationTime, false); } public void spritesClear() {