通过 MarqueeFactory 来提供各种样式的跑马灯 View, 支持自定义跑马灯 ItemView

来源:互联网 发布:dojo 对象数组转json 编辑:程序博客网 时间:2024/06/01 23:38

MarqueeViewLibrary

项目地址:gongwen/MarqueeViewLibrary
简介:跑马灯
更多:作者   提 Bug   
标签:
跑马灯-

通过 MarqueeFactory 来提供各种样式的跑马灯 View, 支持自定义跑马灯 ItemView

效果图

使用

Gradle:

compile 'com.gongwen:marqueelibrary:1.0.4'

属性

Attribute 属性Description 描述marqueeInterval翻页时间间隔marqueeAnimDuration动画执行时间marqueeAnimInmarquee in 动画marqueeAnimOutmarquee out 动画

通过自定义 MarqueeFactory 来设置 ItemView

继承自 MarqueeFactory,通过泛型指定 ItemView 类型以及 ItemData 类型,之后实现 generateMarqueeItemView 方法,提供 ItemView,并为 ItemView 设置数据即可。

例如:
public class NoticeMF extends MarqueeFactory<TextView, String> {    private LayoutInflater inflater;    public NoticeMF(Context mContext) {        super(mContext);        inflater = LayoutInflater.from(mContext);    }    @Override    public TextView generateMarqueeItemView(String data) {        TextView mView = (TextView) inflater.inflate(R.layout.notice_item, null);        mView.setText(data);        return mView;    }}

设置列表数据

适用于仅设置一次数据源
MarqueeFactory marqueeFactory = new NoticeMF(this);marqueeFactory.setData(datas);
###### 适用于多次设置数据源
MarqueeFactory marqueeFactory = new NoticeMF(this);marqueeFactory.resetData(datas);
#### 设置事件监听
marqueeFactory.setOnItemClickListener(new MarqueeFactory.OnItemClickListener() {            @Override            public void onItemClickListener(MarqueeFactory.ViewHolder holder) {                Toast.makeText(MainActivity.this, holder.data, Toast.LENGTH_SHORT).show();            }});

MarqueeView 设置 Factory

marqueeView.setMarqueeFactory(marqueeFactory);

重影问题可参考以下解决方案(参考自这里)

@Overridepublic void onStart() {    super.onStart();    marqueeView.startFlipping();}

@Overridepublic void onStop() { super.onStop(); marqueeView.stopFlipping();}

原创粉丝点击