转载请注明出处:
http://blog.youkuaiyun.com/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
本文介绍了一个仿魅族风格的轮播组件MZBannerView的使用方法。通过实例演示了如何设置点击监听、指示器样式及页面切换效果。适用于希望快速实现流畅轮播效果的开发者。
734

被折叠的 条评论
为什么被折叠?



