一個好玩的輪播圖
阿新 • • 發佈:2018-12-20
首先這是轉載 官方地址: 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)