1. 程式人生 > >一個好玩的輪播圖

一個好玩的輪播圖

首先這是轉載 官方地址: 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)