diff options
| author | Chung-yih Wang <cywang@google.com> | 2011-09-14 22:01:01 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-14 22:01:01 -0700 |
| commit | 1e35ce08ae70575c6127c606dd4ba28f6ff2add1 (patch) | |
| tree | 68f3b88e8a4768496ca56c3ef46e877e2185e065 /src | |
| parent | 47ba486ef20151d0073a9585d51ef9248bc45c88 (diff) | |
| parent | 507aaa672eb8ad5464159021f1b3596cafeede1d (diff) | |
| download | LegacyCamera-1e35ce08ae70575c6127c606dd4ba28f6ff2add1.zip LegacyCamera-1e35ce08ae70575c6127c606dd4ba28f6ff2add1.tar.gz LegacyCamera-1e35ce08ae70575c6127c606dd4ba28f6ff2add1.tar.bz2 | |
Merge "Fix animation for second-level indicator bar."
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/camera/ui/IndicatorControlBarContainer.java | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/src/com/android/camera/ui/IndicatorControlBarContainer.java b/src/com/android/camera/ui/IndicatorControlBarContainer.java index d425c59..60eb6b2 100644 --- a/src/com/android/camera/ui/IndicatorControlBarContainer.java +++ b/src/com/android/camera/ui/IndicatorControlBarContainer.java @@ -25,6 +25,7 @@ import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.animation.Animation; +import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; /** @@ -36,6 +37,7 @@ public class IndicatorControlBarContainer extends IndicatorControlContainer private static final String TAG = "IndicatorControlBarContainer"; private Animation mFadeIn, mFadeOut; + private Animation mSecondLevelFadeIn, mSecondLevelFadeOut; private IndicatorControlBar mIndicatorControlBar; private ZoomControlBar mZoomControlBar; private ZoomIndexBar mZoomIndexBar; @@ -44,9 +46,15 @@ public class IndicatorControlBarContainer extends IndicatorControlContainer public IndicatorControlBarContainer(Context context, AttributeSet attrs) { super(context, attrs); mFadeIn = AnimationUtils.loadAnimation( - context, R.anim.grow_fade_in_from_bottom); + context, R.anim.grow_fade_in_from_top); mFadeOut = AnimationUtils.loadAnimation( + context, R.anim.shrink_fade_out_from_bottom); + mFadeOut.setAnimationListener(mAnimationListener); + mSecondLevelFadeIn = AnimationUtils.loadAnimation( + context, R.anim.grow_fade_in_from_bottom); + mSecondLevelFadeOut = AnimationUtils.loadAnimation( context, R.anim.shrink_fade_out_from_top); + mSecondLevelFadeOut.setAnimationListener(mAnimationListener); } @Override @@ -96,18 +104,34 @@ public class IndicatorControlBarContainer extends IndicatorControlContainer return true; } + private AnimationListener mAnimationListener = new AnimationListener() { + public void onAnimationEnd(Animation animation) { + if (animation == mSecondLevelFadeOut) { + mSecondLevelIndicatorControlBar.setVisibility(View.GONE); + } else if (animation == mFadeOut) { + mIndicatorControlBar.setVisibility(View.GONE); + } + } + + public void onAnimationRepeat(Animation animation) { + } + + public void onAnimationStart(Animation animation) { + } + }; + public void onIndicatorEvent(int event) { switch (event) { case OnIndicatorEventListener.EVENT_ENTER_SECOND_LEVEL_INDICATOR_BAR: - mIndicatorControlBar.setVisibility(View.GONE); - mSecondLevelIndicatorControlBar.startAnimation(mFadeIn); + mIndicatorControlBar.startAnimation(mFadeOut); + mSecondLevelIndicatorControlBar.startAnimation(mSecondLevelFadeIn); mSecondLevelIndicatorControlBar.setVisibility(View.VISIBLE); break; case OnIndicatorEventListener.EVENT_LEAVE_SECOND_LEVEL_INDICATOR_BAR: - mSecondLevelIndicatorControlBar.startAnimation(mFadeOut); - mSecondLevelIndicatorControlBar.setVisibility(View.GONE); + mIndicatorControlBar.startAnimation(mFadeIn); mIndicatorControlBar.setVisibility(View.VISIBLE); + mSecondLevelIndicatorControlBar.startAnimation(mSecondLevelFadeOut); break; case OnIndicatorEventListener.EVENT_ENTER_ZOOM_CONTROL: |
