MZBannerView使用总结

来源:互联网 发布:淘宝5元店铺红包怎么用 编辑:程序博客网 时间:2024/06/06 10:52

转载请注明出处:
http://blog.csdn.net/user11223344abc?viewmode=contents
出自【蛟-blog】

最近做项目,用了开源项目MZBannerView,是一个仿魅族的banner,感觉挺不错的,记录一下使用方式。
具体的如何引入可以去该链接看:
项目地址:https://github.com/pinguo-zhouwei/MZBannerView

需要说明下,因为需要需改这个项目的代码(做网络相册的时候普通Viewpager+photoView会出现一个系统bug)。我用这个库的时候,是使用引moudle的方式,若没有这个要求的朋友建议还是去原作者git下去使用。
(引用moudle的时候会报一个跟maven相关的错误,这是因为作者需要将代码发布到maven中央库,而我们只需要简单的使用,为了省事,所以根据提示注掉project下的gradle内的报错行即可//apply plugin: ‘com.github.dcendents.android-maven’)。

代码流程如下:

  @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_base_demo);        base_mzbanner_normal = (MZBannerView) findViewById(R.id.base_mzbanner_normal);        base_mzbanner_auto_scroll = (MZBannerView) findViewById(R.id.base_mzbanner_auto_scroll);        initBannerView(base_mzbanner_normal);        initBannerView(base_mzbanner_auto_scroll);    }    private void initBannerView(MZBannerView mMZBanner) {        mMZBanner.setBannerPageClickListener(new MZBannerView.BannerPageClickListener() {            @Override            public void onPageClick(View view, int position) {                Toast.makeText(BaseLocalDemo.this,"click page:"+position,Toast.LENGTH_LONG).show();            }        });        mMZBanner.setIndicatorRes(R.color.colorAccent,R.color.colorPrimary);        List<Integer> list = new ArrayList<>();        for(int i=0;i<RES.length;i++){            list.add(RES[i]);        }        mMZBanner.setIndicatorVisible(true);        mMZBanner.setPages(list, new MZHolderCreator<BannerViewHolder>() {            @Override            public BannerViewHolder createViewHolder() {                return new BannerViewHolder();            }        });    }    public static class BannerViewHolder implements MZViewHolder<Integer> {        private ImageView mImageView;        @Override        public View createView(Context context) {            // 返回页面布局文件            View view = LayoutInflater.from(context).inflate(R.layout.banner_item,null);            mImageView = (ImageView) view.findViewById(R.id.banner_image);            return view;        }        @Override        public void onBind(Context context, int position, Integer data) {            // 数据绑定            mImageView.setImageResource(data);        }    }

所有代码都是基于这个最基本的代码来修改的,主要牵涉到2个比较重要的api。
setPages和Holder。

具体的可以参考我写的Demo:
链接1//这个要积分:P
链接2//这个不要下载积分

附上原作者的博客:

http://www.jianshu.com/p/653680cfe877

原创粉丝点击