diff options
| author | lado <herrlado@gmail.com> | 2015-06-09 14:07:14 +0200 |
|---|---|---|
| committer | lado <herrlado@gmail.com> | 2015-06-09 14:07:14 +0200 |
| commit | 23d920c759303602c2a6cde38983b2aa4dbb82c2 (patch) | |
| tree | d0d83c36e0698402c783ebf62e6fe7d8ee85bed2 /vdrmanager/app/src/main/java/de/androvdr/widget/AnimatedTextView.java | |
| parent | be5e0132d51a829326478c668e4eac78e2c9e4d8 (diff) | |
| download | vdr-manager-23d920c759303602c2a6cde38983b2aa4dbb82c2.tar.gz vdr-manager-23d920c759303602c2a6cde38983b2aa4dbb82c2.tar.bz2 | |
StudioStructur
Diffstat (limited to 'vdrmanager/app/src/main/java/de/androvdr/widget/AnimatedTextView.java')
| -rw-r--r-- | vdrmanager/app/src/main/java/de/androvdr/widget/AnimatedTextView.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/vdrmanager/app/src/main/java/de/androvdr/widget/AnimatedTextView.java b/vdrmanager/app/src/main/java/de/androvdr/widget/AnimatedTextView.java new file mode 100644 index 0000000..b6c120b --- /dev/null +++ b/vdrmanager/app/src/main/java/de/androvdr/widget/AnimatedTextView.java @@ -0,0 +1,101 @@ +package de.androvdr.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.TextView; + +/** + * Created by lado on 04.05.15. + */ +public class AnimatedTextView extends TextView { + private static final int IS_ANIMATING_TAG_ID = "isAnimating".hashCode(); + + private Animation fadeInAnimation; + private Animation fadeOutAnimation; + + public AnimatedTextView(Context context) { + super(context); + + initAnimations(context); + } + + public AnimatedTextView(Context context, AttributeSet attrs) { + super(context, attrs); + + initAnimations(context); + } + + public AnimatedTextView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + initAnimations(context); + } + + public void initAnimations(Context context) { + fadeInAnimation = AnimationUtils.loadAnimation(this.getContext(), android.R.anim.fade_in); + + fadeOutAnimation = new AlphaAnimation(1.0f, 0.0f); + fadeOutAnimation.setDuration(100); + fadeInAnimation.setAnimationListener(new Animation.AnimationListener() { + @Override + public void onAnimationStart(Animation animation) { + setAnimatingFlag(true); + } + + @Override + public void onAnimationEnd(Animation animation) { + setAnimatingFlag(false); + } + + @Override + public void onAnimationRepeat(Animation animation) { + + } + }); + + fadeOutAnimation.setAnimationListener(new Animation.AnimationListener() { + @Override + public void onAnimationStart(Animation animation) { + setAnimatingFlag(false); + } + + @Override + public void onAnimationEnd(Animation animation) { + } + + @Override + public void onAnimationRepeat(Animation animation) { + + } + + }); + + setAnimatingFlag(false); + } + + public void fadeOut() { + if (getVisibility() == View.VISIBLE) { + startAnimation(fadeOutAnimation); + setVisibility(View.INVISIBLE); + } + } + + public void fadeIn() { + //if (getVisibility() == View.INVISIBLE && !isAnimating()) { +// startAnimation(fadeInAnimation); + setVisibility(View.VISIBLE); + // } + } + + private boolean isAnimating() { + return (Boolean) getTag(IS_ANIMATING_TAG_ID) == true; + } + + private void setAnimatingFlag(boolean isAnimating) { + setTag(IS_ANIMATING_TAG_ID, new Boolean(isAnimating)); + } +} |
