首先这是转载 官方地址: https://github.com/pinguo-zhouwei/MZBannerView
效果
下面是对一些能力较弱的程序猿们的步骤和坑
搭建环境:
1.根目录
allprojects {
repositories {
//轮播图
maven { url 'https://jitpack.io' }
}
}
2.使用model下,这里有一坑就是最低版本要在16以上
//轮播
implementation 'com.github.pinguo-zhouwei:MZBannerView:v2.0.2'
3.控件
<com.zhouwei.mzbanner.MZBannerView
android:id="@+id/homefragment_viewpager_pageadapter"
android:layout_width="match_parent"
android:layout_height="150dp"
app:open_mz_mode="true"
app:canLoop="true"
app:middle_page_cover="false"
app:indicatorPaddingLeft="20dp"
app:indicatorPaddingRight="20dp"/>
代码:
控件
MZBannerView mViewPager = mView.findViewById(R.id.homefragment_viewpager_pageadapter);
设置布局等,在给图片设置值的时候要注意宽要写成match要不出不来效果
//为轮播图设置数据,需要注意不能为list列表
public static class BannerViewHolder implements MZViewHolder<Bean_HomeFragment_PageBean.ResultBean>{
private SimpleDraweeView mImage;
@Override
public View createView(Context context) {
View view = View.inflate(context, R.layout.homefragment_pagement_pageimage, null);
mImage = view.findViewById(R.id.pageadapter_simpledraweeview_image);
return view;
}
@Override
public void onBind(Context context, int i, Bean_HomeFragment_PageBean.ResultBean resultBean) {
Uri parse = Uri.parse(resultBean.getImageUrl());
mImage.setImageURI(parse);
}
}
设置数据
//轮播
mViewPager.setPages(数据, new MZHolderCreator<BannerViewHolder>() {
@Override
public BannerViewHolder createViewHolder() {
return new BannerViewHolder();
}
});
写到这里已经完成了,细节需要看官方网址
方法介绍
/******************************************************************************************************/
/** 对外API **/
/******************************************************************************************************/
//开始轮播
start()
//停止轮播
pause()
//设置BannerView 的切换时间间隔
setDelayedTime(int delayedTime)
// 设置页面改变监听器
addPageChangeLisnter(ViewPager.OnPageChangeListener onPageChangeListener)
//添加Page点击事件
setBannerPageClickListener(BannerPageClickListener bannerPageClickListener)
//设置是否显示Indicator
setIndicatorVisible(boolean visible)
// 获取ViewPager
ViewPager getViewPager()
// 设置 Indicator资源
setIndicatorRes(int unSelectRes,int selectRes)
//设置页面数据
setPages(List<T> datas,MZHolderCreator mzHolderCreator)
//设置指示器显示位置
setIndicatorAlign(IndicatorAlign indicatorAlign)
//设置ViewPager(Banner)切换速度
setDuration(int duration)