From: Oskar Wiksten Date: Mon, 6 Aug 2012 16:35:29 +0000 (+0200) Subject: Use animations when changing visibility of the combat bar. X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c90d7c4ef0350544b8b344a4718c63bbbc0827cf;p=users%2Fmchehab%2Fandors-trail.git Use animations when changing visibility of the combat bar. --- diff --git a/AndorsTrail/res/anim/hidecombatbar.xml b/AndorsTrail/res/anim/hidecombatbar.xml new file mode 100644 index 0000000..77f471c --- /dev/null +++ b/AndorsTrail/res/anim/hidecombatbar.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/AndorsTrail/res/anim/showcombatbar.xml b/AndorsTrail/res/anim/showcombatbar.xml new file mode 100644 index 0000000..aa64619 --- /dev/null +++ b/AndorsTrail/res/anim/showcombatbar.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java index a0911b7..ebc2da2 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java @@ -6,7 +6,6 @@ import android.content.res.Resources; import android.os.Handler; import android.os.Message; import android.util.FloatMath; -import android.view.View; import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences; import com.gpl.rpg.AndorsTrail.Dialogs; @@ -49,8 +48,7 @@ public final class CombatController implements VisualEffectCompletedCallback { public static final int BEGIN_TURN_CONTINUE = 2; public void enterCombat(int beginTurnAs) { - context.mainActivity.combatview.setVisibility(View.VISIBLE); - context.mainActivity.combatview.bringToFront(); + context.mainActivity.combatview.show(); model.uiSelections.isInCombat = true; killedMonsterBags.clear(); context.mainActivity.clearMessages(); @@ -61,7 +59,7 @@ public final class CombatController implements VisualEffectCompletedCallback { } public void exitCombat(boolean pickupLootBags) { setCombatSelection(null, null); - context.mainActivity.combatview.setVisibility(View.GONE); + context.mainActivity.combatview.hide(); model.uiSelections.isInCombat = false; context.mainActivity.clearMessages(); currentActiveMonster = null; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/CombatView.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/CombatView.java index a347224..c981c2e 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/CombatView.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/CombatView.java @@ -5,6 +5,9 @@ import android.content.Context; import android.content.res.Resources; import android.util.AttributeSet; import android.view.View; +import android.view.animation.Animation; +import android.view.animation.Animation.AnimationListener; +import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageButton; import android.widget.RelativeLayout; @@ -34,6 +37,8 @@ public final class CombatView extends RelativeLayout { private final ViewContext view; private final Resources res; private final Player player; + private final Animation displayAnimation; + private final Animation hideAnimation; private Monster currentMonster; public CombatView(final Context context, AttributeSet attr) { @@ -90,6 +95,16 @@ public final class CombatView extends RelativeLayout { monsterBar.setBackgroundColor(res.getColor(color.transparent)); actionBar.setBackgroundColor(res.getColor(color.transparent)); + + displayAnimation = AnimationUtils.loadAnimation(context, R.anim.showcombatbar); + hideAnimation = AnimationUtils.loadAnimation(context, R.anim.hidecombatbar); + hideAnimation.setAnimationListener(new AnimationListener() { + @Override public void onAnimationStart(Animation animation) {} + @Override public void onAnimationRepeat(Animation animation) {} + @Override public void onAnimationEnd(Animation arg0) { + CombatView.this.setVisibility(View.GONE); + } + }); } public void updateTurnInfo(Monster currentActiveMonster) { @@ -135,4 +150,15 @@ public final class CombatView extends RelativeLayout { } updateCombatSelection(world.model.uiSelections.selectedMonster, world.model.uiSelections.selectedPosition); } + + public void show() { + setVisibility(View.VISIBLE); + bringToFront(); + startAnimation(displayAnimation); + } + + public void hide() { + startAnimation(hideAnimation); + //setVisibility(View.GONE); + } }