UpMarqueeTextView-模仿淘宝client向上滚动的广告条
2017-07-30 17:57
465 查看
UpMarqueeTextView一个简单的向上滚动的相似跑马灯效果,项目中用到的时候是接受到推送过来的消息向上滚动一次。没有做动态的gif效果,所以都是一些纯文字的简单记录。
UpMarqueeTextView通过实现TextView使用Animator动画来实现,所以须要满足3.0以下的版本号须要使用nineold-androids来实现效果。事实上原理什么非常easy看看代码就能了解。
![](http://img.blog.csdn.net/20150710172537551)
功能确实非常easy,设置下动画代码就可以实现了。苍蝇虽小也是肉。项目体验下载地址:
https://github.com/Neacy/UpMarqueerTextView/tree/master
UpMarqueeTextView通过实现TextView使用Animator动画来实现,所以须要满足3.0以下的版本号须要使用nineold-androids来实现效果。事实上原理什么非常easy看看代码就能了解。
public class UpMarqueeTextView extends TextView implements Animator.AnimatorListener { private static final String TAG = "UpMarqueeTextView"; private static final int ANIMATION_DURATION = 200; private float height; private AnimatorSet mAnimatorStartSet; private AnimatorSet mAnimatorEndSet; private String mText; public UpMarqueeTextView(Context context) { super(context); } public UpMarqueeTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Log.w(TAG, "--- onDraw ---"); height = getHeight();// 确保view的高度 } /**--- 初始化向上脱离屏幕的动画效果 ---*/ private void initStartAnimation() { ObjectAnimator translate = ObjectAnimator.ofFloat(this, "translationY", 0, -height); ObjectAnimator alpha = ObjectAnimator.ofFloat(this, "alpha", 1f, 0f); mAnimatorStartSet = new AnimatorSet(); mAnimatorStartSet.play(translate).with(alpha); mAnimatorStartSet.setDuration(ANIMATION_DURATION); mAnimatorStartSet.addListener(this); } /**--- 初始化从屏幕以下向上的动画效果 ---*/ private void initEndAnimation() { ObjectAnimator translate = ObjectAnimator.ofFloat(this, "translationY", height, 0); ObjectAnimator alpha = ObjectAnimator.ofFloat(this, "alpha", 0f, 1f); mAnimatorEndSet = new AnimatorSet(); mAnimatorEndSet.play(translate).with(alpha); mAnimatorEndSet.setDuration(ANIMATION_DURATION); } /**--- 设置内容 ---**/ public void setText(String text) { if (TextUtils.isEmpty(text)) { Log.e(TAG, "--- 请确保text不为空 ---"); return; } mText = text; if (null == mAnimatorStartSet) { initStartAnimation(); } mAnimatorStartSet.start(); } @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { super.setText(mText); if (null == mAnimatorEndSet) { initEndAnimation(); } mAnimatorEndSet.start(); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }
功能确实非常easy,设置下动画代码就可以实现了。苍蝇虽小也是肉。项目体验下载地址:
https://github.com/Neacy/UpMarqueerTextView/tree/master
相关文章推荐
- UpMarqueeTextView-模仿淘宝客户端向上滚动的广告条
- android TextView向上滚动(模仿滚动文字广告效果)
- Android 实现TextView垂直向上滚动(仿向上滚动文字的广告)
- 仿天猫热点,淘宝头条向上自动滚动的textview
- 仿天猫热点,淘宝头条向上自动滚动的textview
- Android TextView竖直滚动文字广告效果
- android 如何让appwidget 里面设置TextView 滚动,android widget marquee text
- 首页垂直滚动TextView广告效果,使用TextSwicher+animation实现
- Android TextView实现滚动跑马灯效果Marquee
- Android仿淘宝头条基于TextView实现上下滚动通知效果
- TextView设置android:ellipsize=marquee不滚动
- 亲测Android TextView的文字滚动(marquee)效果
- TextView title 文字过多滚动 TextView属性android:ellipsize="marquee"不生效的解决办法
- MarQueeView垂直滚动广告
- Android_仿京东广告滚动textview
- 当EditText做Recyclerview头部时,界面绘制好后发现Recyclerview向上滚动了一点的问题
- Android仿淘宝头条基于TextView实现上下滚动通知效果
- android 文件的读取与写入以及TextView的滚动
- 开始编辑textView或者textField时向上推动self.view
- Android TextView的垂直滚动效果