Преглед на файлове

dev 3.0.1 (#110)

* update gradle version.

* Remove CircleIndicatorView and DashIndicatorView

* update viewpagerindicator version to 1.0.2
zhpanvip преди 5 години
родител
ревизия
e7cb5adf1a
променени са 26 файла, в които са добавени 159 реда и са изтрити 519 реда
  1. 5 5
      README.md
  2. 0 1
      app/build.gradle
  3. 0 8
      app/proguard-rules.pro
  4. BIN
      app/release/app-release.apk
  5. 10 9
      app/src/main/java/com/example/zhpan/circleviewpager/adapter/HomeAdapter.java
  6. 39 17
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java
  7. 1 1
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java
  8. 6 1
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java
  9. 12 1
      app/src/main/java/com/example/zhpan/circleviewpager/net/BannerData.java
  10. 0 187
      app/src/main/java/com/example/zhpan/circleviewpager/view/DrawableIndicator.java
  11. 2 1
      app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NetViewHolder.java
  12. 6 3
      app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NewTypeViewHolder.java
  13. 0 35
      app/src/main/java/com/example/zhpan/circleviewpager/viewholder/VideoViewHolder.java
  14. 1 1
      app/src/main/res/drawable/bg_start.xml
  15. 9 9
      app/src/main/res/layout/fragment_find.xml
  16. 7 7
      app/src/main/res/layout/item_header_view.xml
  17. 27 0
      app/src/main/res/layout/item_new_type.xml
  18. 0 11
      app/src/main/res/layout/item_video.xml
  19. 1 1
      bannerview/build.gradle
  20. 17 18
      bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java
  21. 1 1
      bannerview/src/main/java/com/zhpan/bannerview/BaseBannerAdapter.java
  22. 0 75
      bannerview/src/main/java/com/zhpan/bannerview/indicator/CircleIndicatorView.java
  23. 0 104
      bannerview/src/main/java/com/zhpan/bannerview/indicator/DashIndicatorView.java
  24. 12 20
      bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java
  25. 1 1
      build.gradle
  26. 2 2
      gradle/wrapper/gradle-wrapper.properties

+ 5 - 5
README.md

@@ -18,10 +18,10 @@
 - Optimize memory,improve perfermance.
 - add setOrientation method,support vertical orientation
 - add addPageTransformer method and removeTransformer method
-- setAdapter replaced setHolderCreator
-- getData replaced getList
-- registerOnPageChangeCallback replaced setOnPageChangeListener
-- setUserInputEnabled replaced disableTouchScroll
+- setAdapter replaces setHolderCreator
+- getData replaces getList
+- registerOnPageChangeCallback replaces setOnPageChangeListener
+- setUserInputEnabled replaces disableTouchScroll
 - remove setPageTransformerStyle
 - remvoe some deprecate methods in 2.x
 
@@ -416,7 +416,7 @@ you must add proguard rules,If you have called setScrollDuration method in you
 
 | Alipay | WeChat |
 |--|--|
-| ![Alipay](https://github.com/zhpanvip/Resource/tree/master/image/pay/pay_alipay.jpg) |  ![WeChat](https://github.com/zhpanvip/Resource/blob/master/image/pay/pay_wechat.png) |
+| ![Alipay](https://github.com/zhpanvip/Resource/blob/master/image/pay/pay_alipay.jpg) |  ![WeChat](https://github.com/zhpanvip/Resource/blob/master/image/pay/pay_wechat.png) |
 
 ##  More details
 

+ 0 - 1
app/build.gradle

@@ -58,5 +58,4 @@ dependencies {
     implementation 'androidx.core:core-ktx:1.2.0'
     implementation 'androidx.cardview:cardview:1.0.0'
     implementation 'androidx.viewpager2:viewpager2:1.0.0'
-    implementation 'cn.jzvd:jiaozivideoplayer:7.2.3'
 }

+ 0 - 8
app/proguard-rules.pro

@@ -26,14 +26,6 @@
 -keep class com.example.zhpan.circleviewpager.bean.** { *; }
 -keep class com.example.zhpan.circleviewpager.net.** { *; }
 -keep class com.zhpan.idea.** { *; }
--keep public class cn.jzvd.JZMediaSystem {*; }
--keep public class cn.jzvd.demo.CustomMedia.CustomMedia {*; }
--keep public class cn.jzvd.demo.CustomMedia.JZMediaIjk {*; }
--keep public class cn.jzvd.demo.CustomMedia.JZMediaSystemAssertFolder {*; }
-
--keep class tv.danmaku.ijk.media.player.** {*; }
--dontwarn tv.danmaku.ijk.media.player.*
--keep interface tv.danmaku.ijk.media.player.** { *; }
 
 -keep class androidx.recyclerview.widget.**{*;}
 -keep class androidx.viewpager2.widget.**{*;}

BIN
app/release/app-release.apk


+ 10 - 9
app/src/main/java/com/example/zhpan/circleviewpager/adapter/HomeAdapter.java

@@ -4,10 +4,10 @@ import android.view.View;
 
 import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.net.BannerData;
-import com.example.zhpan.circleviewpager.viewholder.BaseNetViewHolder;
 import com.example.zhpan.circleviewpager.viewholder.NetViewHolder;
-import com.example.zhpan.circleviewpager.viewholder.VideoViewHolder;
+import com.example.zhpan.circleviewpager.viewholder.NewTypeViewHolder;
 import com.zhpan.bannerview.BaseBannerAdapter;
+import com.zhpan.bannerview.BaseViewHolder;
 
 /**
  * <pre>
@@ -15,16 +15,17 @@ import com.zhpan.bannerview.BaseBannerAdapter;
  *   Description:
  * </pre>
  */
-public class HomeAdapter extends BaseBannerAdapter<BannerData, BaseNetViewHolder> {
+public class HomeAdapter extends BaseBannerAdapter<BannerData, BaseViewHolder<BannerData>> {
+
     @Override
-    protected void onBind(BaseNetViewHolder holder, BannerData data, int position, int pageSize) {
+    protected void onBind(BaseViewHolder<BannerData> holder, BannerData data, int position, int pageSize) {
         holder.bindData(data, position, pageSize);
     }
 
     @Override
-    public BaseNetViewHolder createViewHolder(View itemView, int viewType) {
-        if (viewType == BannerData.TYPE_VIDEO) {
-            return new VideoViewHolder(itemView);
+    public BaseViewHolder<BannerData> createViewHolder(View itemView, int viewType) {
+        if (viewType == BannerData.TYPE_NEW) {
+            return new NewTypeViewHolder(itemView);
         }
         return new NetViewHolder(itemView);
     }
@@ -36,8 +37,8 @@ public class HomeAdapter extends BaseBannerAdapter<BannerData, BaseNetViewHolder
 
     @Override
     public int getLayoutId(int viewType) {
-        if (viewType == BannerData.TYPE_VIDEO) {
-            return R.layout.item_video;
+        if (viewType == BannerData.TYPE_NEW) {
+            return R.layout.item_new_type;
         }
         return R.layout.item_net;
     }

+ 39 - 17
app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java

@@ -1,8 +1,10 @@
 package com.example.zhpan.circleviewpager.fragment;
 
+import android.net.Uri;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.MediaController;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -20,11 +22,11 @@ import com.example.zhpan.circleviewpager.bean.DataWrapper;
 import com.example.zhpan.circleviewpager.net.BannerData;
 import com.example.zhpan.circleviewpager.net.RetrofitGnerator;
 import com.example.zhpan.circleviewpager.recyclerview.ui.CustomRecyclerView;
-import com.example.zhpan.circleviewpager.viewholder.BaseNetViewHolder;
 import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
 import com.scwang.smartrefresh.header.MaterialHeader;
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
 import com.zhpan.bannerview.BannerViewPager;
+import com.zhpan.bannerview.BaseViewHolder;
 import com.zhpan.bannerview.constants.IndicatorGravity;
 import com.zhpan.idea.net.common.ResponseObserver;
 import com.zhpan.idea.utils.LogUtils;
@@ -44,7 +46,7 @@ import io.reactivex.schedulers.Schedulers;
  */
 public class HomeFragment extends BaseFragment {
 
-    private BannerViewPager<BannerData, BaseNetViewHolder> mViewPagerHorizontal;
+    private BannerViewPager<BannerData, BaseViewHolder<BannerData>> mViewPagerHorizontal;
     private BannerViewPager<Integer, ImageResourceViewHolder> mViewPagerVertical;
     private BannerViewPager<Integer, ImageResourceViewHolder> mViewPager;
     private CustomRecyclerView recyclerView;
@@ -71,6 +73,13 @@ public class HomeFragment extends BaseFragment {
         if (mViewPagerHorizontal != null) {
             mViewPagerHorizontal.stopLoop();
         }
+        if (mViewPagerVertical != null) {
+            mViewPagerVertical.stopLoop();
+        }
+        if (mViewPager != null) {
+            mViewPager.stopLoop();
+        }
+
     }
 
     @Override
@@ -80,6 +89,12 @@ public class HomeFragment extends BaseFragment {
         if (mViewPagerHorizontal != null) {
             mViewPagerHorizontal.startLoop();
         }
+        if (mViewPagerVertical != null) {
+            mViewPagerVertical.startLoop();
+        }
+        if (mViewPager != null) {
+            mViewPager.startLoop();
+        }
     }
 
     @Override
@@ -102,6 +117,7 @@ public class HomeFragment extends BaseFragment {
                 DividerItemDecoration.VERTICAL));
         articleAdapter = new ArticleAdapter(getMContext(), new ArrayList<>());
         recyclerView.setAdapter(articleAdapter);
+        recyclerView.getHeadAndFootAdapter();
     }
 
     private void initRefreshLayout(View view) {
@@ -118,10 +134,11 @@ public class HomeFragment extends BaseFragment {
                     @Override
                     public void onSuccess(DataWrapper response) {
                         List<BannerData> dataList = response.getDataBeanList();
-//                        BannerData bannerData = new BannerData();
-//                        bannerData.setUrl("http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4");
-//                        bannerData.setType(BannerData.TYPE_VIDEO);
-//                        dataList.add(0, bannerData);
+                        BannerData bannerData = new BannerData();
+                        bannerData.setDrawable(R.drawable.advertise4);
+                        bannerData.setType(BannerData.TYPE_NEW);
+                        bannerData.setTitle("这是一个自定义类型");
+                        dataList.add(1, bannerData);
                         mViewPagerHorizontal.setData(dataList);
                         articleAdapter.setData(response.getArticleList());
                         if (response.getDataBeanList().size() > 0) {
@@ -146,15 +163,18 @@ public class HomeFragment extends BaseFragment {
         return RetrofitGnerator.getApiSerVice().getBannerData().subscribeOn(Schedulers.io());
     }
 
+
     private void initBanner() {
+        HomeAdapter homeAdapter = new HomeAdapter();
         mViewPagerHorizontal
+                .setAutoPlay(true)
                 .setIndicatorSlideMode(IndicatorSlideMode.WORM)
                 .setInterval(3000)
                 .setIndicatorGravity(IndicatorGravity.END)
                 .setIndicatorSliderRadius(getResources().getDimensionPixelSize(R.dimen.dp_3))
                 .setIndicatorView(mIndicatorView)// 这里为了设置标题故用了自定义Indicator,如果无需标题则没必要添加此行代码
                 .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setAdapter(new HomeAdapter())
+                .setAdapter(homeAdapter)
                 .registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
                     @Override
                     public void onPageSelected(int position) {
@@ -186,18 +206,20 @@ public class HomeFragment extends BaseFragment {
     }
 
     private void onPageClicked(int position) {
-        BannerData bannerData = mViewPagerHorizontal.getData().get(position);
-        Toast.makeText(getMContext(), "position:" + position + " " + bannerData.getTitle() + "currentItem:" + mViewPagerHorizontal.getCurrentItem(), Toast.LENGTH_SHORT).show();
+        if (position != 0) {
+            BannerData bannerData = mViewPagerHorizontal.getData().get(position);
+            Toast.makeText(getMContext(), "position:" + position + " " + bannerData.getTitle() + "currentItem:" + mViewPagerHorizontal.getCurrentItem(), Toast.LENGTH_SHORT).show();
+        }
     }
 
     private View getHeaderView() {
-        View view = LayoutInflater.from(getMContext()).inflate(R.layout.item_header_view, recyclerView, false);
-        mRlIndicator = view.findViewById(R.id.layout_indicator);
-        mViewPagerHorizontal = view.findViewById(R.id.banner_view);
-        mViewPagerVertical = view.findViewById(R.id.banner_view2);
-        mViewPager = view.findViewById(R.id.banner_view3);
-        mTvTitle = view.findViewById(R.id.tv_title);
-        mIndicatorView = view.findViewById(R.id.indicator_view);
-        return view;
+        View headerView = LayoutInflater.from(getMContext()).inflate(R.layout.item_header_view, recyclerView, false);
+        mRlIndicator = headerView.findViewById(R.id.layout_indicator);
+        mViewPagerHorizontal = headerView.findViewById(R.id.banner_view);
+        mViewPagerVertical = headerView.findViewById(R.id.banner_view2);
+        mViewPager = headerView.findViewById(R.id.banner_view3);
+        mTvTitle = headerView.findViewById(R.id.tv_title);
+        mIndicatorView = headerView.findViewById(R.id.indicator_view);
+        return headerView;
     }
 }

+ 1 - 1
app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java

@@ -10,7 +10,6 @@ import android.widget.RadioGroup;
 import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.activity.PhotoViewActivity;
 import com.example.zhpan.circleviewpager.adapter.ImageResourceAdapter;
-import com.example.zhpan.circleviewpager.view.DrawableIndicator;
 import com.example.zhpan.circleviewpager.view.FigureIndicatorView;
 import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
 import com.zhpan.bannerview.BannerViewPager;
@@ -18,6 +17,7 @@ import com.zhpan.bannerview.constants.IndicatorGravity;
 import com.zhpan.bannerview.utils.BannerUtils;
 import com.zhpan.idea.utils.LogUtils;
 import com.zhpan.idea.utils.ToastUtils;
+import com.zhpan.indicator.DrawableIndicator;
 import com.zhpan.indicator.IndicatorView;
 import com.zhpan.indicator.base.IIndicator;
 import com.zhpan.indicator.enums.IndicatorSlideMode;

+ 6 - 1
app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java

@@ -1,9 +1,13 @@
 package com.example.zhpan.circleviewpager.fragment;
 
+import android.media.MediaPlayer;
+import android.net.Uri;
 import android.os.Bundle;
 import android.view.View;
+import android.widget.MediaController;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
+import android.widget.VideoView;
 
 import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.adapter.ImageResourceAdapter;
@@ -22,6 +26,7 @@ public class PageFragment extends BaseFragment {
     private BannerViewPager<Integer, ImageResourceViewHolder> mViewPager;
     private RadioGroup mRadioGroupPageStyle;
     private RadioButton radioButton;
+    private VideoView mVideoView;
 
     @Override
     protected int getLayout() {
@@ -94,7 +99,7 @@ public class PageFragment extends BaseFragment {
                 .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_20))
                 .setRevealWidth(getResources().getDimensionPixelOffset(R.dimen.dp_10))
                 .setPageStyle(pageStyle)
-                .create(getMDrawableList());
+                .create(getPicList(4));
     }
 
     //  仿QQ音乐的Banner

+ 12 - 1
app/src/main/java/com/example/zhpan/circleviewpager/net/BannerData.java

@@ -1,5 +1,7 @@
 package com.example.zhpan.circleviewpager.net;
 
+import android.net.Uri;
+
 /**
  * <pre>
  *   Created by zhangpan on 2019-08-14.
@@ -19,7 +21,7 @@ public class BannerData {
      * url : https://flutter.cn/
      */
 
-    public static final int TYPE_VIDEO = 10000;
+    public static final int TYPE_NEW = 10000;
 
     private String desc;
     private int id;
@@ -29,6 +31,15 @@ public class BannerData {
     private String title;
     private int type;
     private String url;
+    private int drawable;
+
+    public int getDrawable() {
+        return drawable;
+    }
+
+    public void setDrawable(int drawable) {
+        this.drawable = drawable;
+    }
 
     public String getDesc() {
         return desc;

+ 0 - 187
app/src/main/java/com/example/zhpan/circleviewpager/view/DrawableIndicator.java

@@ -1,187 +0,0 @@
-package com.example.zhpan.circleviewpager.view;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Matrix;
-import android.graphics.drawable.Drawable;
-import android.os.Build;
-import android.util.AttributeSet;
-
-import androidx.annotation.DrawableRes;
-import androidx.annotation.Nullable;
-import androidx.appcompat.widget.AppCompatDrawableManager;
-import androidx.core.graphics.drawable.DrawableCompat;
-
-import com.zhpan.indicator.base.BaseIndicatorView;
-
-
-/**
- * @ author : zhouweibin
- * @ time: 2019/12/18 17:04.
- * @ desc: 选中与未选中的图片长宽可能不一样
- **/
-public class DrawableIndicator extends BaseIndicatorView {
-    // 选中与未选中的图片
-    private Bitmap mCheckedBitmap, mNormalBitmap;
-    // 图片之间的间距
-    private int mIndicatorPadding;
-    // 选中图片的宽高
-    private int mCheckedBitmapWidth, mCheckedBitmapHeight;
-    //未选中图片的宽高
-    private int mNormalBitmapWidth, mNormalBitmapHeight;
-    private IndicatorSize mIndicatorSize;
-    private boolean normalCanResize = true;
-    private boolean checkCanResize=true;
-
-    public DrawableIndicator(Context context) {
-        this(context, null);
-    }
-
-    public DrawableIndicator(Context context, @Nullable AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public DrawableIndicator(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        int maxHeight = Math.max(mCheckedBitmapHeight, mNormalBitmapHeight);
-        int realWidth = mCheckedBitmapWidth + (mNormalBitmapWidth + mIndicatorPadding) * (getPageSize() - 1);
-        setMeasuredDimension(realWidth, maxHeight);
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-        if (getPageSize() > 1 && mCheckedBitmap != null && mNormalBitmap != null) {
-            for (int i = 1; i < getPageSize() + 1; i++) {
-                int left;
-                int top;
-                Bitmap bitmap = mNormalBitmap;
-                int index = i - 1;
-                if (index < getCurrentPosition()) {
-                    left = (i - 1) * (mNormalBitmapWidth + mIndicatorPadding);
-                    top = getMeasuredHeight() / 2 - mNormalBitmapHeight / 2;
-                } else if (index == getCurrentPosition()) {
-                    left = (i - 1) * (mNormalBitmapWidth + mIndicatorPadding);
-                    top = getMeasuredHeight() / 2 - mCheckedBitmapHeight / 2;
-                    bitmap = mCheckedBitmap;
-                } else {
-                    left = (i - 1) * mIndicatorPadding + (i - 2) * mNormalBitmapWidth + mCheckedBitmapWidth;
-                    top = getMeasuredHeight() / 2 - mNormalBitmapHeight / 2;
-                }
-                drawIcon(canvas, left, top, bitmap);
-            }
-        }
-    }
-
-    private void drawIcon(Canvas canvas, int left, int top, Bitmap icon) {
-        if (icon == null) {
-            return;
-        }
-        canvas.drawBitmap(icon, left, top, null);
-    }
-
-    private void initIconSize() {
-        if (mCheckedBitmap != null) {
-            if (mIndicatorSize != null) {
-                if (mCheckedBitmap.isMutable()&& checkCanResize) {
-                    mCheckedBitmap.setWidth(mIndicatorSize.checkedWidth);
-                    mCheckedBitmap.setHeight(mIndicatorSize.checkedHeight);
-                } else {
-                    int width = mCheckedBitmap.getWidth();
-                    int height = mCheckedBitmap.getHeight();
-                    float scaleWidth = ((float) (mIndicatorSize.checkedWidth) / width);
-                    float scaleHeight = ((float) (mIndicatorSize.checkedHeight) / height);
-                    Matrix matrix = new Matrix();
-                    matrix.postScale(scaleWidth, scaleHeight);
-                    mCheckedBitmap = Bitmap.createBitmap(mCheckedBitmap, 0, 0, width, height, matrix, true);
-                }
-            }
-            mCheckedBitmapWidth = mCheckedBitmap.getWidth();
-            mCheckedBitmapHeight = mCheckedBitmap.getHeight();
-        }
-
-        if (mNormalBitmap != null) {
-            if (mIndicatorSize != null) {
-                if (mNormalBitmap.isMutable()&& normalCanResize) {
-                    mNormalBitmap.setWidth(mIndicatorSize.normalWidth);
-                    mNormalBitmap.setHeight(mIndicatorSize.normalHeight);
-                } else {
-                    int width = mNormalBitmap.getWidth();
-                    int height = mNormalBitmap.getHeight();
-                    float scaleWidth = ((float) (mIndicatorSize.normalWidth) / mNormalBitmap.getWidth());
-                    float scaleHeight = ((float) (mIndicatorSize.normalHeight) / mNormalBitmap.getHeight());
-                    Matrix matrix = new Matrix();
-                    matrix.postScale(scaleWidth, scaleHeight);
-                    mNormalBitmap = Bitmap.createBitmap(mNormalBitmap, 0, 0, width, height, matrix, true);
-                }
-            }
-            mNormalBitmapWidth = mNormalBitmap.getWidth();
-            mNormalBitmapHeight = mNormalBitmap.getHeight();
-        }
-    }
-
-    public DrawableIndicator setIndicatorDrawable(@DrawableRes int normalDrawable, @DrawableRes int checkedDrawable) {
-        mNormalBitmap = mCheckedBitmap = BitmapFactory.decodeResource(getResources(), normalDrawable);
-        mCheckedBitmap = BitmapFactory.decodeResource(getResources(), checkedDrawable);
-        if (mNormalBitmap == null) {
-            mNormalBitmap = getBitmapFromVectorDrawable(getContext(), normalDrawable);
-            normalCanResize =false;
-        }
-        if (mCheckedBitmap == null) {
-            mCheckedBitmap = getBitmapFromVectorDrawable(getContext(), checkedDrawable);
-            checkCanResize =false;
-        }
-        initIconSize();
-        postInvalidate();
-        return this;
-    }
-
-    public DrawableIndicator setIndicatorSize(int normalWidth, int normalHeight, int checkedWidth, int checkedHeight) {
-        this.mIndicatorSize = new IndicatorSize(normalWidth, normalHeight, checkedWidth, checkedHeight);
-        initIconSize();
-        postInvalidate();
-        return this;
-    }
-
-    public DrawableIndicator setIndicatorGap(int padding) {
-        if (padding >= 0) {
-            mIndicatorPadding = padding;
-            postInvalidate();
-        }
-        return this;
-    }
-
-    private static Bitmap getBitmapFromVectorDrawable(Context context, int drawableId) {
-        Drawable drawable = context.getResources().getDrawable(drawableId);
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
-            drawable = (DrawableCompat.wrap(drawable)).mutate();
-        }
-        Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
-                drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
-        Canvas canvas = new Canvas(bitmap);
-        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
-        drawable.draw(canvas);
-        return bitmap;
-    }
-
-    static class IndicatorSize {
-        int normalWidth;
-        int checkedWidth;
-        int normalHeight;
-        int checkedHeight;
-
-        public IndicatorSize(int normalWidth, int normalHeight, int checkedWidth, int checkedHeight) {
-            this.normalWidth = normalWidth;
-            this.checkedWidth = checkedWidth;
-            this.normalHeight = normalHeight;
-            this.checkedHeight = checkedHeight;
-        }
-    }
-}

+ 2 - 1
app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NetViewHolder.java

@@ -8,6 +8,7 @@ import com.bumptech.glide.Glide;
 import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.net.BannerData;
 import com.example.zhpan.circleviewpager.view.CornerImageView;
+import com.zhpan.bannerview.BaseViewHolder;
 import com.zhpan.bannerview.utils.BannerUtils;
 
 /**
@@ -16,7 +17,7 @@ import com.zhpan.bannerview.utils.BannerUtils;
  *   Description:
  * </pre>
  */
-public class NetViewHolder extends BaseNetViewHolder {
+public class NetViewHolder extends BaseViewHolder<BannerData> {
 
     public NetViewHolder(@NonNull View itemView) {
         super(itemView);

+ 6 - 3
app/src/main/java/com/example/zhpan/circleviewpager/viewholder/BaseNetViewHolder.java → app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NewTypeViewHolder.java

@@ -1,9 +1,12 @@
 package com.example.zhpan.circleviewpager.viewholder;
 
 import android.view.View;
+import android.widget.MediaController;
+import android.widget.VideoView;
 
 import androidx.annotation.NonNull;
 
+import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.net.BannerData;
 import com.zhpan.bannerview.BaseViewHolder;
 
@@ -13,14 +16,14 @@ import com.zhpan.bannerview.BaseViewHolder;
  *   Description:
  * </pre>
  */
-public class BaseNetViewHolder extends BaseViewHolder<BannerData> {
+public class NewTypeViewHolder extends BaseViewHolder<BannerData> {
 
-    public BaseNetViewHolder(@NonNull View itemView) {
+    public NewTypeViewHolder(@NonNull View itemView) {
         super(itemView);
     }
 
     @Override
     public void bindData(BannerData data, int position, int pageSize) {
-
+        setImageResource(R.id.image_view, data.getDrawable());
     }
 }

+ 0 - 35
app/src/main/java/com/example/zhpan/circleviewpager/viewholder/VideoViewHolder.java

@@ -1,35 +0,0 @@
-package com.example.zhpan.circleviewpager.viewholder;
-
-import android.view.View;
-
-import androidx.annotation.NonNull;
-
-import com.example.zhpan.circleviewpager.R;
-import com.example.zhpan.circleviewpager.net.BannerData;
-
-import cn.jzvd.JzvdStd;
-
-/**
- * <pre>
- *   Created by zhangpan on 2020/4/9.
- *   Description:
- * </pre>
- */
-public class VideoViewHolder extends BaseNetViewHolder {
-    private JzvdStd jzvdStd;
-
-    public VideoViewHolder(@NonNull View itemView) {
-        super(itemView);
-        jzvdStd = findView(R.id.banner_video);
-
-    }
-
-    @Override
-    public void bindData(BannerData data, int position, int pageSize) {
-        super.bindData(data, position, pageSize);
-    }
-
-    public JzvdStd getJzvdStd() {
-        return jzvdStd;
-    }
-}

+ 1 - 1
app/src/main/res/drawable/bg_start.xml

@@ -8,7 +8,7 @@
     android:width="0.5dp"
     android:color="#e35d5e" />-->
 <!-- 圆角 -->
-<corners android:radius="5dp" />
+<corners android:radius="95dp" />
 <!-- 边距 -->
 <padding
     android:bottom="0dp"

+ 9 - 9
app/src/main/res/layout/fragment_find.xml

@@ -8,8 +8,8 @@
         android:id="@+id/banner_view"
         android:layout_width="match_parent"
         android:layout_height="@dimen/dp_180"
-        app:bvp_indicator_slide_mode="worm"
         android:layout_marginTop="@dimen/dp_20"
+        app:bvp_indicator_slide_mode="worm"
         app:bvp_page_style="multi_page" />
 
     <TextView
@@ -35,33 +35,33 @@
             android:id="@+id/rb_multi_page"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textSize="@dimen/sp_16"
             android:layout_marginEnd="@dimen/dp_15"
-            android:text="MULTI_PAGE" />
+            android:text="MULTI_PAGE"
+            android:textSize="@dimen/sp_16" />
 
         <RadioButton
             android:id="@+id/rb_multi_page_scale"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="@dimen/dp_15"
-            android:textSize="@dimen/sp_16"
-            android:text="MULTI_PAGE_SCALE" />
+            android:text="MULTI_PAGE_SCALE"
+            android:textSize="@dimen/sp_16" />
 
         <RadioButton
             android:id="@+id/rb_multi_page_overlap"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textSize="@dimen/sp_16"
             android:layout_marginTop="@dimen/dp_15"
-            android:text="MULTI_PAGE_OVERLAP" />
+            android:text="MULTI_PAGE_OVERLAP"
+            android:textSize="@dimen/sp_16" />
 
         <RadioButton
             android:id="@+id/rb_qq_music_style"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textSize="@dimen/sp_16"
             android:layout_marginTop="@dimen/dp_15"
-            android:text="QQ Music Banner Style" />
+            android:text="QQ Music Banner Style"
+            android:textSize="@dimen/sp_16" />
 
     </RadioGroup>
 

+ 7 - 7
app/src/main/res/layout/item_header_view.xml

@@ -2,18 +2,18 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/dp_435"
+    android:layout_height="match_parent"
     android:orientation="vertical">
 
     <RelativeLayout
         android:id="@+id/rl_banner1"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/dp_180">
+        android:layout_height="@dimen/dp_200">
 
         <com.zhpan.bannerview.BannerViewPager
             android:id="@+id/banner_view"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/dp_180" />
+            android:layout_height="@dimen/dp_200" />
 
         <!--这里为了设置标题故用了自定义Indicator,如果无需标题则没必要将Indicator定义在此处-->
         <RelativeLayout
@@ -47,14 +47,14 @@
     <com.zhpan.bannerview.BannerViewPager
         android:id="@+id/banner_view2"
         android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_120"
         android:layout_below="@id/rl_banner1"
-        android:layout_marginTop="@dimen/dp_5"
-        android:layout_height="@dimen/dp_120" />
+        android:layout_marginTop="@dimen/dp_5" />
 
     <com.zhpan.bannerview.BannerViewPager
         android:id="@+id/banner_view3"
         android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_120"
         android:layout_below="@id/banner_view2"
-        android:layout_marginTop="@dimen/dp_5"
-        android:layout_height="@dimen/dp_120" />
+        android:layout_marginTop="@dimen/dp_5" />
 </RelativeLayout>

+ 27 - 0
app/src/main/res/layout/item_new_type.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <ImageView
+        android:id="@+id/image_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="centerCrop" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="@dimen/dp_10"
+        android:background="@drawable/bg_start"
+        android:gravity="center"
+        android:paddingStart="@dimen/dp_10"
+        android:paddingTop="@dimen/dp_5"
+        android:paddingEnd="@dimen/dp_10"
+        android:paddingBottom="@dimen/dp_5"
+        android:text="多类型Item"
+        android:textColor="#fff"
+        android:textSize="16sp" />
+
+</RelativeLayout>

+ 0 - 11
app/src/main/res/layout/item_video.xml

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <cn.jzvd.JzvdStd
-        android:id="@+id/banner_video"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</RelativeLayout>

+ 1 - 1
bannerview/build.gradle

@@ -31,7 +31,7 @@ dependencies {
     androidTestImplementation 'androidx.test:runner:1.2.0'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
     implementation 'androidx.appcompat:appcompat:1.1.0'
-    api 'com.github.zhpanvip:viewpagerindicator:1.0.1'
+    api 'com.github.zhpanvip:viewpagerindicator:1.0.2'
     implementation 'androidx.viewpager2:viewpager2:1.0.0'
     implementation 'androidx.core:core-ktx:1.2.0'
 }

+ 17 - 18
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -45,12 +45,14 @@ import static com.zhpan.bannerview.transform.ScaleInTransformer.MAX_SCALE;
 /**
  * Created by zhpan on 2017/3/28.
  */
-public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayout {
+public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLayout {
 
     private int currentPosition;
 
     private boolean isCustomIndicator;
 
+    private boolean isLooping;
+
     private OnPageClickListener mOnPageClickListener;
 
     private IIndicator mIndicatorView;
@@ -168,13 +170,13 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
     public boolean dispatchTouchEvent(MotionEvent ev) {
         switch (ev.getAction()) {
             case MotionEvent.ACTION_DOWN:
-                setLooping(true);
+                isLooping = true;
                 stopLoop();
                 break;
             case MotionEvent.ACTION_UP:
             case MotionEvent.ACTION_CANCEL:
             case MotionEvent.ACTION_OUTSIDE:
-                setLooping(false);
+                isLooping = false;
                 startLoop();
                 break;
         }
@@ -353,10 +355,10 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
                 setMultiPageStyle(false, MAX_SCALE);
                 break;
             case PageStyle.MULTI_PAGE_OVERLAP:
-                setMultiPageStyle(true, DEFAULT_MIN_SCALE);
+                setMultiPageStyle(true, mBannerManager.bannerOptions().getPageScale());
                 break;
             case PageStyle.MULTI_PAGE_SCALE:
-                setMultiPageStyle(false, DEFAULT_MIN_SCALE);
+                setMultiPageStyle(false, mBannerManager.bannerOptions().getPageScale());
                 break;
         }
     }
@@ -376,7 +378,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
             mCompositePageTransformer.removeTransformer(mPageTransformer);
         }
         if (overlap && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            mPageTransformer = new OverlapPageTransformer(orientation, scale, scale, 0, 0);
+            mPageTransformer = new OverlapPageTransformer(orientation, scale, 0f, 1, 0);
         } else {
             mPageTransformer = new ScaleInTransformer(scale);
         }
@@ -391,14 +393,6 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
         return mBannerManager.bannerOptions().isAutoPlay();
     }
 
-    private boolean isLooping() {
-        return mBannerManager.bannerOptions().isLooping();
-    }
-
-    private void setLooping(boolean looping) {
-        mBannerManager.bannerOptions().setLooping(looping);
-    }
-
     private boolean isCanLoop() {
         return mBannerManager.bannerOptions().isCanLoop();
     }
@@ -414,10 +408,10 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
      * Start loop
      */
     public void startLoop() {
-        if (!isLooping() && isAutoPlay() && mBannerPagerAdapter != null &&
+        if (!isLooping && isAutoPlay() && mBannerPagerAdapter != null &&
                 mBannerPagerAdapter.getListSize() > 1) {
             mHandler.postDelayed(mRunnable, getInterval());
-            setLooping(true);
+            isLooping = true;
         }
     }
 
@@ -425,9 +419,9 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
      * stoop loop
      */
     public void stopLoop() {
-        if (isLooping()) {
+        if (isLooping) {
             mHandler.removeCallbacks(mRunnable);
-            setLooping(false);
+            isLooping = false;
         }
     }
 
@@ -770,7 +764,12 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
      * @return BannerViewPager
      */
     public BannerViewPager<T, VH> setPageStyle(@APageStyle int pageStyle) {
+        return setPageStyle(pageStyle, DEFAULT_MIN_SCALE);
+    }
+
+    public BannerViewPager<T, VH> setPageStyle(@APageStyle int pageStyle, float pageScale) {
         mBannerManager.bannerOptions().setPageStyle(pageStyle);
+        mBannerManager.bannerOptions().setPageScale(pageScale);
         return this;
     }
 

+ 1 - 1
bannerview/src/main/java/com/zhpan/bannerview/BaseBannerAdapter.java

@@ -15,7 +15,7 @@ import java.util.List;
 /**
  * Created by zhpan on 2017/3/28.
  */
-public abstract class BaseBannerAdapter<T, VH extends BaseViewHolder> extends RecyclerView.Adapter<VH> {
+public abstract class BaseBannerAdapter<T, VH extends BaseViewHolder<T>> extends RecyclerView.Adapter<VH> {
     protected List<T> mList = new ArrayList<>();
     private boolean isCanLoop;
     static final int MAX_VALUE = 500;

+ 0 - 75
bannerview/src/main/java/com/zhpan/bannerview/indicator/CircleIndicatorView.java

@@ -1,75 +0,0 @@
-package com.zhpan.bannerview.indicator;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-
-import com.zhpan.indicator.base.BaseIndicatorView;
-
-
-/**
- * Created by zhpan on 2017/12/6.
- *
- * @deprecated Use {@link com.zhpan.indicator.IndicatorView} instead.
- */
-@Deprecated
-public class CircleIndicatorView extends BaseIndicatorView {
-
-    private float mNormalRadius;
-    private float mCheckedRadius;
-    private float maxRadius;
-    private int height;
-    private Paint mPaint = new Paint();
-
-    public CircleIndicatorView(Context context) {
-        this(context, null);
-    }
-
-    public CircleIndicatorView(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public CircleIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        mPaint.setAntiAlias(true);
-        mPaint.setColor(getNormalColor());
-        mNormalRadius = getNormalSliderWidth() / 2;
-        mCheckedRadius = getCheckedSliderWidth() / 2;
-        getIndicatorOptions().setSliderGap(mNormalRadius * 2);
-    }
-
-    @Override
-    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
-        super.onSizeChanged(w, h, oldw, oldh);
-        height = getHeight();
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        mNormalRadius = getNormalSliderWidth() / 2;
-        mCheckedRadius = getCheckedSliderWidth() / 2;
-        maxRadius = Math.max(mCheckedRadius, mNormalRadius);
-        setMeasuredDimension((int) ((getPageSize() - 1) * getIndicatorGap() + 2 * (maxRadius + mNormalRadius * (getPageSize() - 1))),
-                (int) (2 * maxRadius));
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-        if (getPageSize() > 1) {
-            for (int i = 0; i < getPageSize(); i++) {
-                mPaint.setColor(getNormalColor());
-                canvas.drawCircle(maxRadius + (2 * mNormalRadius + getIndicatorGap()) * i, height / 2f, mNormalRadius, mPaint);
-            }
-            drawSliderStyle(canvas);
-        }
-    }
-
-    private void drawSliderStyle(Canvas canvas) {
-        mPaint.setColor(getCheckedColor());
-        canvas.drawCircle(maxRadius + (2 * mNormalRadius + getIndicatorGap()) * getCurrentPosition() + (2 * mNormalRadius + getIndicatorGap()) * getSlideProgress(),
-                height / 2f, mCheckedRadius, mPaint);
-    }
-}

+ 0 - 104
bannerview/src/main/java/com/zhpan/bannerview/indicator/DashIndicatorView.java

@@ -1,104 +0,0 @@
-package com.zhpan.bannerview.indicator;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-
-import com.zhpan.indicator.base.BaseIndicatorView;
-import com.zhpan.indicator.enums.IndicatorSlideMode;
-
-/**
- * Created by zhpan on 2017/12/6.
- *
- * @deprecated Use {@link com.zhpan.indicator.IndicatorView} instead.
- */
-@Deprecated
-public class DashIndicatorView extends BaseIndicatorView {
-    private float sliderHeight;
-    private float maxWidth;
-    private float minWidth;
-    private Paint mPaint=new Paint();
-
-    public DashIndicatorView(Context context) {
-        this(context, null);
-    }
-
-    public DashIndicatorView(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public DashIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        mPaint.setAntiAlias(true);
-        mPaint.setColor(getNormalColor());
-        sliderHeight = getNormalSliderWidth() / 2;
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        maxWidth = Math.max(getNormalSliderWidth(), getCheckedSliderWidth());
-        minWidth = Math.min(getNormalSliderWidth(), getCheckedSliderWidth());
-        setMeasuredDimension((int) ((getPageSize() - 1) * getIndicatorGap() + maxWidth + (getPageSize() - 1) * minWidth),
-                (int) (getSliderHeight()));
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-        if (getPageSize() > 1) {
-            for (int i = 0; i < getPageSize(); i++) {
-                if (getSlideMode() == IndicatorSlideMode.SMOOTH) {
-                    smoothSlide(canvas, i);
-                } else {
-                    normalSlide(canvas, i);
-                }
-            }
-        }
-    }
-
-
-    private void normalSlide(Canvas canvas, int i) {
-        if (getNormalSliderWidth() == getCheckedSliderWidth()) {
-            mPaint.setColor(getNormalColor());
-            float left = i * (getNormalSliderWidth()) + i * +getIndicatorGap();
-            canvas.drawRect(left, 0, left + getNormalSliderWidth(), getSliderHeight(), mPaint);
-            drawSliderStyle(canvas);
-        } else {  //  仿支付宝首页轮播图的Indicator
-            if (i < getCurrentPosition()) {
-                mPaint.setColor(getNormalColor());
-                float left = i * minWidth + i * getIndicatorGap();
-                canvas.drawRect(left, 0, left + minWidth, getSliderHeight(), mPaint);
-            } else if (i == getCurrentPosition()) {
-                mPaint.setColor(getCheckedColor());
-                float left = i * minWidth + i * getIndicatorGap();
-                canvas.drawRect(left, 0, left + minWidth + (maxWidth - minWidth), getSliderHeight(), mPaint);
-            } else {
-                mPaint.setColor(getNormalColor());
-                float left = i * minWidth + i * getIndicatorGap() + (maxWidth - minWidth);
-                canvas.drawRect(left, 0, left + minWidth, getSliderHeight(), mPaint);
-            }
-        }
-    }
-
-    private void smoothSlide(Canvas canvas, int i) {
-        mPaint.setColor(getNormalColor());
-        float left = i * (maxWidth) + i * +getIndicatorGap() + (maxWidth - minWidth);
-        canvas.drawRect(left, 0, left + minWidth, getSliderHeight(), mPaint);
-        drawSliderStyle(canvas);
-    }
-
-    private void drawSliderStyle(Canvas canvas) {
-        mPaint.setColor(getCheckedColor());
-        float left = getCurrentPosition() * (maxWidth) + getCurrentPosition() * +getIndicatorGap() + (maxWidth + getIndicatorGap()) * getSlideProgress();
-        canvas.drawRect(left, 0, left + maxWidth, getSliderHeight(), mPaint);
-    }
-
-    public float getSliderHeight() {
-        if (getIndicatorOptions().getSliderHeight() > 0) {
-            return getIndicatorOptions().getSliderHeight();
-        }
-        return sliderHeight;
-    }
-}

+ 12 - 20
bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java

@@ -6,6 +6,8 @@ import com.zhpan.bannerview.constants.PageStyle;
 import com.zhpan.bannerview.utils.BannerUtils;
 import com.zhpan.indicator.option.IndicatorOptions;
 
+import static com.zhpan.bannerview.transform.ScaleInTransformer.DEFAULT_MIN_SCALE;
+
 /**
  * <pre>
  *   Created by zhpan on 2019/11/20.
@@ -24,10 +26,6 @@ public class BannerOptions {
 
     private int interval;
 
-    private int currentPosition;
-
-    private boolean isLooping;
-
     private boolean isCanLoop;
 
     private boolean isAutoPlay = false;
@@ -40,6 +38,8 @@ public class BannerOptions {
 
     private int pageStyle = PageStyle.NORMAL;
 
+    private float pageScale = DEFAULT_MIN_SCALE;
+
     private IndicatorMargin mIndicatorMargin;
 
     private int mIndicatorVisibility;
@@ -62,22 +62,6 @@ public class BannerOptions {
         this.interval = interval;
     }
 
-    public int getCurrentPosition() {
-        return currentPosition;
-    }
-
-    public void setCurrentPosition(int currentPosition) {
-        this.currentPosition = currentPosition;
-    }
-
-    public boolean isLooping() {
-        return isLooping;
-    }
-
-    public void setLooping(boolean looping) {
-        isLooping = looping;
-    }
-
     public boolean isCanLoop() {
         return isCanLoop;
     }
@@ -188,6 +172,14 @@ public class BannerOptions {
         this.pageStyle = pageStyle;
     }
 
+    public float getPageScale() {
+        return pageScale;
+    }
+
+    public void setPageScale(float pageScale) {
+        this.pageScale = pageScale;
+    }
+
     public IndicatorMargin getIndicatorMargin() {
         return mIndicatorMargin;
     }

+ 1 - 1
build.gradle

@@ -10,7 +10,7 @@ buildscript {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.5.3'
+        classpath 'com.android.tools.build:gradle:3.6.2'
         classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
         classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Fri Aug 02 21:31:39 CST 2019
+#Sat Apr 11 17:35:28 CST 2020
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip