介绍
这篇文章主要介绍Android怎么实现垂直跑马灯效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
在我们开发过程中,跑马灯这个功能非常实用的,在实现这个功能的时候,这个时候我们通常需要找演示来实现这个方法,我从github上面找到这个演示感觉很好用,所以就要实现了这个功能喽MarqueeView,看这个工具类,因为我找这个类的时候是没有点击事件的,所以我给它加了一个点击事件,看这个工具类
public class MarqueeView extends ViewFlipper { ,private Context  mContext; ,private List< String>,通知; ,private boolean isSetAnimDuration =,假; ,private int  contentSize; ,private int interval =, 1000; ,private int animDuration =, 500; ,private int textSize =, 14; ,private int textColor =, 0 xffffffff; ,private int gravity =, Gravity.LEFT |, Gravity.CENTER_VERTICAL; ,//点击事件 ,private OnItemClickListener  onItemClickListener; ,public MarqueeView (Context 上下文,AttributeSet attrs), { ,超级(上下文,attrs); ,init(上下文,attrs, 0); ,} ,private void  init (Context 上下文,AttributeSet attrs,, int defStyleAttr), {=,this.mContext 语境; ,if (notices ==, null), {=,,notices  new ArrayList<在(); ,} ,TypedArray TypedArray =, getContext () .obtainStyledAttributes (attrs, R.styleable.MarqueeViewStyle,, defStyleAttr,, 0);=,,interval  typedArray.getInteger (R.styleable.MarqueeViewStyle_mvInterval,间隔);=,,isSetAnimDuration  typedArray.hasValue (R.styleable.MarqueeViewStyle_mvAnimDuration);=,,animDuration  typedArray.getInteger (animDuration R.styleable.MarqueeViewStyle_mvAnimDuration也); ,if (typedArray.hasValue (R.styleable.MarqueeViewStyle_mvTextSize)), {=,textSize (int), typedArray.getDimension (textSize R.styleable.MarqueeViewStyle_mvTextSize也);=,,textSize  DisplayUtil.px2sp (textSize mContext也); ,}=,,textColor  typedArray.getColor(输入textColor R.styleable.MarqueeViewStyle_mvTextColor也); ,typedArray.recycle (); ,setFlipInterval(间隔); ,Animation animIn =, AnimationUtils.loadAnimation (R.anim.anim_marquee_in mContext也); ,if (isSetAnimDuration), animIn.setDuration (animDuration); ,setInAnimation (animIn); ,Animation animOut =, AnimationUtils.loadAnimation (R.anim.anim_marquee_out mContext也); ,if (isSetAnimDuration), animOut.setDuration (animDuration); ,setOutAnimation (animOut); ,} ,//根据公告字符串启动轮播 ,public void  startWithText (final String 通知),{ ,if (TextUtils.isEmpty(注意),返回; ,getViewTreeObserver () .addOnGlobalLayoutListener (new ViewTreeObserver.OnGlobalLayoutListener (), { ,@Override ,public void  onGlobalLayout (), { ,getViewTreeObserver () .removeGlobalOnLayoutListener(这个); ,startWithFixedWidth(注意,getWidth ()); ,} ,}); ,} ,//根据公告字符串列表启动轮播 ,public void  startWithList (ListAndroid怎么实现垂直跑马灯效果