Улучшена обработка анимационных эффектов
This commit is contained in:
parent
11867dca90
commit
8d9ea21306
@ -64,10 +64,10 @@ public class AnimatableImageView extends ImageView {
|
|||||||
setImageResource(resId, "");
|
setImageResource(resId, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageResource(int resId, String effect) {
|
public int setImageResource(int resId, String effect) {
|
||||||
previous = getDrawable();
|
previous = getDrawable();
|
||||||
super.setImageResource(resId);
|
super.setImageResource(resId);
|
||||||
setAnimationEffect(effect);
|
return setAnimationEffect(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -75,10 +75,10 @@ public class AnimatableImageView extends ImageView {
|
|||||||
setImageDrawable(drawable, "");
|
setImageDrawable(drawable, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageDrawable(Drawable drawable, String effect) {
|
public int setImageDrawable(Drawable drawable, String effect) {
|
||||||
previous = getDrawable();
|
previous = getDrawable();
|
||||||
super.setImageDrawable(drawable);
|
super.setImageDrawable(drawable);
|
||||||
setAnimationEffect("");
|
return setAnimationEffect("");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -86,15 +86,15 @@ public class AnimatableImageView extends ImageView {
|
|||||||
setImageBitmap(bm, "");
|
setImageBitmap(bm, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageBitmap(Bitmap bm, String effect) {
|
public int setImageBitmap(Bitmap bm, String effect) {
|
||||||
previous = getDrawable();
|
previous = getDrawable();
|
||||||
super.setImageBitmap(bm);
|
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);
|
final String effect = animEffect.toLowerCase(Locale.ENGLISH);
|
||||||
if (!animations.containsKey(effect)) return;
|
if (!animations.containsKey(effect)) return 0;
|
||||||
|
|
||||||
final Anim anim = animations.get(effect);
|
final Anim anim = animations.get(effect);
|
||||||
|
|
||||||
@ -105,6 +105,7 @@ public class AnimatableImageView extends ImageView {
|
|||||||
final TransitionDrawable transition = new TransitionDrawable(layers);
|
final TransitionDrawable transition = new TransitionDrawable(layers);
|
||||||
setImageDrawable(transition);
|
setImageDrawable(transition);
|
||||||
transition.startTransition(anim.duration);
|
transition.startTransition(anim.duration);
|
||||||
|
return anim.duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Anim {
|
private static class Anim {
|
||||||
|
@ -350,7 +350,7 @@ public final class Parser {
|
|||||||
final String name = consume(TokenType.WORD).getText();
|
final String name = consume(TokenType.WORD).getText();
|
||||||
final String effect = matchWithEffect();
|
final String effect = matchWithEffect();
|
||||||
ViewActivity.getInstance().background(type, name, effect);
|
ViewActivity.getInstance().background(type, name, effect);
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean show() {
|
private boolean show() {
|
||||||
|
@ -285,16 +285,21 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
|||||||
backgroundName = name;
|
backgroundName = name;
|
||||||
text("");
|
text("");
|
||||||
spritesClear();
|
spritesClear();
|
||||||
if (name.equalsIgnoreCase("black")) background.setImageResource(android.R.color.black, effect);
|
int animationTime = 0;
|
||||||
else if (name.equalsIgnoreCase("white")) background.setImageResource(android.R.color.white, effect);
|
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 {
|
else {
|
||||||
try {
|
try {
|
||||||
background.setImageBitmap(IOUtil.readBitmap(PathResolver.background(type, name)), effect);
|
animationTime = background.setImageBitmap(IOUtil.readBitmap(
|
||||||
|
PathResolver.background(type, name)), effect);
|
||||||
} catch (Exception ioe) {
|
} catch (Exception ioe) {
|
||||||
if (Logger.DEBUG) Logger.log("background: " + type + ", " + name, ioe);
|
if (Logger.DEBUG) Logger.log("background: " + type + ", " + name, ioe);
|
||||||
background.setImageResource(android.R.color.black);
|
background.setImageResource(android.R.color.black);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pause(animationTime, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spritesClear() {
|
public void spritesClear() {
|
||||||
|
Loading…
Reference in New Issue
Block a user