Улучшена обработка анимационных эффектов
This commit is contained in:
parent
11867dca90
commit
8d9ea21306
@ -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 {
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
Loading…
Reference in New Issue
Block a user