Поддержка эффектов переходов при сокрытии спрайтов
This commit is contained in:
parent
3ba4b7d1ab
commit
8aaa36fde6
@ -22,9 +22,12 @@ import com.annimon.everlastingsummer.transitions.Transitions;
|
|||||||
*/
|
*/
|
||||||
public class AnimatableImageView extends ImageView {
|
public class AnimatableImageView extends ImageView {
|
||||||
|
|
||||||
|
private static final ColorDrawable NONE = new ColorDrawable();
|
||||||
|
|
||||||
private static final SparseArray<Drawable> colors;
|
private static final SparseArray<Drawable> colors;
|
||||||
static {
|
static {
|
||||||
colors = new SparseArray<Drawable>();
|
colors = new SparseArray<Drawable>();
|
||||||
|
colors.append(0, NONE);
|
||||||
colors.append(Color.WHITE, new ColorDrawable(Color.WHITE));
|
colors.append(Color.WHITE, new ColorDrawable(Color.WHITE));
|
||||||
colors.append(Color.BLACK, new ColorDrawable(Color.BLACK));
|
colors.append(Color.BLACK, new ColorDrawable(Color.BLACK));
|
||||||
colors.append(0xFFEE1111, new ColorDrawable(0xFFEE1111));
|
colors.append(0xFFEE1111, new ColorDrawable(0xFFEE1111));
|
||||||
@ -63,7 +66,7 @@ public class AnimatableImageView extends ImageView {
|
|||||||
public int setImageDrawable(Drawable drawable, String effect) {
|
public int setImageDrawable(Drawable drawable, String effect) {
|
||||||
previous = getDrawable();
|
previous = getDrawable();
|
||||||
super.setImageDrawable(drawable);
|
super.setImageDrawable(drawable);
|
||||||
return setAnimationEffect("");
|
return setAnimationEffect(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -87,6 +90,14 @@ public class AnimatableImageView extends ImageView {
|
|||||||
}
|
}
|
||||||
return result;
|
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) {
|
private int setAnimationEffect(String animEffect) {
|
||||||
final String effect = animEffect.toLowerCase(Locale.ENGLISH);
|
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) {
|
public void hideSprite(String whoid, String effect) {
|
||||||
if (!spriteInContainer.containsKey(whoid)) return;
|
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);
|
container.removeView(img);
|
||||||
spriteInContainer.remove(img);
|
spriteInContainer.remove(img);
|
||||||
safeClearImageView(img);
|
safeClearImageView(img);
|
||||||
|
Loading…
Reference in New Issue
Block a user