Поддержка эффектов переходов при сокрытии спрайтов
This commit is contained in:
parent
3ba4b7d1ab
commit
8aaa36fde6
@ -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<Drawable> colors;
|
||||
static {
|
||||
colors = new SparseArray<Drawable>();
|
||||
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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user