Use animations when changing visibility of the combat bar.

This commit is contained in:
Oskar Wiksten
2012-08-06 18:35:29 +02:00
parent bcead230b5
commit c90d7c4ef0
4 changed files with 44 additions and 4 deletions

View File

@@ -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%"
/>

View File

@@ -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%"
/>

View 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;

View 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);
}
}