]> www.infradead.org Git - users/mchehab/andors-trail.git/commitdiff
Use animations when changing visibility of the combat bar.
authorOskar Wiksten <oskar.wiksten@gmail.com>
Mon, 6 Aug 2012 16:35:29 +0000 (18:35 +0200)
committerOskar Wiksten <oskar.wiksten@gmail.com>
Sun, 7 Oct 2012 14:27:08 +0000 (16:27 +0200)
AndorsTrail/res/anim/hidecombatbar.xml [new file with mode: 0644]
AndorsTrail/res/anim/showcombatbar.xml [new file with mode: 0644]
AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/CombatView.java

diff --git a/AndorsTrail/res/anim/hidecombatbar.xml b/AndorsTrail/res/anim/hidecombatbar.xml
new file mode 100644 (file)
index 0000000..77f471c
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate 
+       xmlns:android="http://schemas.android.com/apk/res/android"
+       android:interpolator="@android:anim/accelerate_interpolator"
+       android:duration="300"
+       android:fromYDelta="0%"
+       android:toYDelta="-100%"
+       />
\ No newline at end of file
diff --git a/AndorsTrail/res/anim/showcombatbar.xml b/AndorsTrail/res/anim/showcombatbar.xml
new file mode 100644 (file)
index 0000000..aa64619
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate 
+       xmlns:android="http://schemas.android.com/apk/res/android"
+       android:interpolator="@android:anim/decelerate_interpolator"
+       android:duration="300"
+       android:fromYDelta="-100%"
+       android:toYDelta="0%"
+       />
\ No newline at end of file
index a0911b735028757ce8ede446bef741adfcf91f0b..ebc2da2692e864322ba66c1e3264320de8d0973c 100644 (file)
@@ -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;
index a34722494c88745fb2c0bc7e637ca0bb0ba2ff8d..c981c2e9eaf1d234dda5ba29130dcd9dadf9e81d 100644 (file)
@@ -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);
+       }
 }