Browse Source

SCALE slide mode and COLOR slide mode supported.

zhpanvip 5 years ago
parent
commit
c78a83dfce

+ 3 - 1
README.md

@@ -54,6 +54,8 @@ BannerViewPager supports three Indicator Styles and three Indicator Slide mode n
 | NORMAL| ![CIRCLE_NORMAL](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_normal.gif) | ![DASH_NORMAL](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_normal.gif) | ![ROUND_RECT_NORMAL](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_normal.gif) |
 | SMOOTH| ![CIRCLE_SMOOTH](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_smooth.gif) | ![DASH_SMOOTH](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_smooth.gif) | ![ROUND_RECT_SMOOTH](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_smooth.gif) |
 | WORM| ![CIRCLE_WORM](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_worm.gif) | ![DASH_WORM](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_worm.gif) | ![ROUND_WORM](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_worm.gif) |
+| COLOR| ![CIRCLE_COLOR](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_color.gif) | ![DASH_COLOR](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_color.gif) | ![ROUND_COLOR](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_color.gif) |
+| SCALE| ![CIRCLE_SCALE](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_scale.gif) | ![DASH_SCALE](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_scale.gif) | ![ROUND_SCALE](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_scale.gif) |
 
 #### (2)Custom Indicator
 
@@ -179,7 +181,6 @@ implementation 'com.github.zhpanvip:BannerViewPager:latestVersion'
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_alignParentBottom="true"
-            android:background="#66000000"
             android:gravity="center_vertical">
 
             <TextView
@@ -249,6 +250,7 @@ public class HomeAdapter extends BaseBannerAdapter<BannerData, NetViewHolder> {
              mBannerViewPager = findViewById(R.id.banner_view);
              mViewPager
                       .setAutoPlay(true)
+                      .setScrollDuration(800)
                       .setIndicatorStyle(IndicatorStyle.ROUND_RECT)
                       .setIndicatorSliderGap(getResources().getDimensionPixelOffset(R.dimen.dp_4))
                       .setIndicatorSliderWidth(getResources().getDimensionPixelOffset(R.dimen.dp_4), getResources().getDimensionPixelOffset(R.dimen.dp_10))

+ 3 - 1
README_CN.md

@@ -54,6 +54,8 @@ BannerViewPager目前已支持三种IndicatorViewStyle,以及三种IndicatorSlid
 | NORMAL| ![CIRCLE_NORMAL](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_normal.gif) | ![DASH_NORMAL](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_normal.gif) | ![ROUND_RECT_NORMAL](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_normal.gif) |
 | SMOOTH| ![CIRCLE_SMOOTH](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_smooth.gif) | ![DASH_SMOOTH](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_smooth.gif) | ![ROUND_RECT_SMOOTH](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_smooth.gif) |
 | WORM| ![CIRCLE_WORM](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_worm.gif) | ![DASH_WORM](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_worm.gif) | ![ROUND_WORM](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_worm.gif) |
+| COLOR| ![CIRCLE_COLOR](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_color.gif) | ![DASH_COLOR](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_color.gif) | ![ROUND_COLOR](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_color.gif) |
+| SCALE| ![CIRCLE_SCALE](https://github.com/zhpanvip/Resource/blob/master/image/indicator/slide_circle_scale.gif) | ![DASH_SCALE](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_dash_scale.gif) | ![ROUND_SCALE](https://github.com/zhpanvip/Resource/blob/master/image/indicator/style_round_rect_scale.gif) |
 
 #### (2)Custom Indicator
 
@@ -177,7 +179,6 @@ implementation 'com.github.zhpanvip:BannerViewPager:latestVersion'
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_alignParentBottom="true"
-            android:background="#66000000"
             android:gravity="center_vertical">
 
             <TextView
@@ -248,6 +249,7 @@ public class HomeAdapter extends BaseBannerAdapter<BannerData, NetViewHolder> {
              mViewPager = findViewById(R.id.banner_view);
              mViewPager
                        .setAutoPlay(true)
+                       .setScrollDuration(800)
                        .setIndicatorStyle(IndicatorStyle.ROUND_RECT)
                        .setIndicatorSliderGap(getResources().getDimensionPixelOffset(R.dimen.dp_4))
                        .setIndicatorSliderWidth(getResources().getDimensionPixelOffset(R.dimen.dp_4), getResources().getDimensionPixelOffset(R.dimen.dp_10))

BIN
app/release/app-release.apk


+ 6 - 2
app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java

@@ -52,6 +52,7 @@ public class HomeFragment extends BaseFragment {
     private IndicatorView mIndicatorView;
     private TextView mTvTitle;
     private RelativeLayout mRlIndicator;
+    private View headerView;
 
     @Override
     protected int getLayout() {
@@ -103,7 +104,7 @@ public class HomeFragment extends BaseFragment {
     private void initRecyclerView(View view) {
         recyclerView = view.findViewById(R.id.recycler_view);
         recyclerView.setLayoutManager(new LinearLayoutManager(getMContext()));
-        recyclerView.addHeadView(getHeaderView(),true);
+        recyclerView.addHeadView(getHeaderView(), true);
         recyclerView.addItemDecoration(new DividerItemDecoration(getMContext(),
                 DividerItemDecoration.VERTICAL));
         articleAdapter = new ArticleAdapter(getMContext(), new ArrayList<>());
@@ -124,6 +125,7 @@ public class HomeFragment extends BaseFragment {
                 .subscribe(new ResponseObserver<DataWrapper>() {
                     @Override
                     public void onSuccess(DataWrapper response) {
+                        headerView.setVisibility(View.VISIBLE);
                         List<BannerData> dataList = response.getDataBeanList();
                         BannerData bannerData = new BannerData();
                         bannerData.setDrawable(R.drawable.bg_card0);
@@ -165,6 +167,7 @@ public class HomeFragment extends BaseFragment {
         mViewPagerHorizontal
                 .setAutoPlay(true)
                 .setScrollDuration(600)
+                .setIndicatorStyle(IndicatorStyle.CIRCLE)
                 .setIndicatorSlideMode(IndicatorSlideMode.WORM)
                 .setInterval(3000)
                 .setIndicatorGravity(IndicatorGravity.END)
@@ -186,6 +189,7 @@ public class HomeFragment extends BaseFragment {
                 .setAutoPlay(true)
                 .setScrollDuration(500)
                 .setIndicatorStyle(IndicatorStyle.ROUND_RECT)
+                .setIndicatorSlideMode(IndicatorSlideMode.SCALE)
                 .setIndicatorSliderGap(getResources().getDimensionPixelOffset(R.dimen.dp_4))
                 .setIndicatorSliderWidth(getResources().getDimensionPixelOffset(R.dimen.dp_4), getResources().getDimensionPixelOffset(R.dimen.dp_10))
                 .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
@@ -200,7 +204,7 @@ public class HomeFragment extends BaseFragment {
     }
 
     private View getHeaderView() {
-        View headerView = LayoutInflater.from(getMContext()).inflate(R.layout.item_header_view, recyclerView, false);
+        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);

+ 21 - 18
app/src/main/java/com/example/zhpan/circleviewpager/fragment/IndicatorFragment.java

@@ -66,6 +66,7 @@ public class IndicatorFragment extends BaseFragment {
         mRadioGroupMode = view.findViewById(R.id.rg_slide_mode);
         mViewPager = view.findViewById(R.id.banner_view);
         mViewPager.setIndicatorSliderGap(BannerUtils.dp2px(6))
+                .setScrollDuration(800)
                 .setAdapter(new ImageResourceAdapter(0))
                 .setRoundCorner(BannerUtils.dp2px(6));
         initRadioGroup();
@@ -86,6 +87,12 @@ public class IndicatorFragment extends BaseFragment {
                 case R.id.rb_smooth:
                     mSlideMode = IndicatorSlideMode.SMOOTH;
                     break;
+                case R.id.rb_color:
+                    mSlideMode = IndicatorSlideMode.COLOR;
+                    break;
+                case R.id.rb_scale:
+                    mSlideMode = IndicatorSlideMode.SCALE;
+                    break;
             }
             checkedChange(mCheckId);
         });
@@ -102,23 +109,9 @@ public class IndicatorFragment extends BaseFragment {
             case R.id.rb_round_rect:
                 setupRoundRectIndicator();
                 break;
-            case R.id.rb_tmall:
-                setupTMallIndicator();
-                break;
         }
     }
 
-    private void setupTMallIndicator() {
-        mViewPager
-                .setIndicatorStyle(IndicatorStyle.DASH)
-                .setIndicatorSliderGap(0)
-                .setIndicatorSlideMode(mSlideMode)
-                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setIndicatorSliderWidth(getResources().getDimensionPixelOffset(R.dimen.dp_15))
-                .setIndicatorHeight(getResources().getDimensionPixelOffset(R.dimen.dp_3))
-                .create(getPicList(4));
-    }
-
     private void setupRoundRectIndicator() {
         int checkedWidth = getResources().getDimensionPixelOffset(R.dimen.dp_10);
         int normalWidth = getNormalWidth();
@@ -133,14 +126,23 @@ public class IndicatorFragment extends BaseFragment {
     }
 
     private void setupCircleIndicator() {
+        int checkedWidth;
+        int normalWidth;
+        if (mSlideMode == IndicatorSlideMode.SCALE) {
+            checkedWidth = getResources().getDimensionPixelOffset(R.dimen.dp_5);
+            normalWidth = getResources().getDimensionPixelOffset(R.dimen.dp_3);
+        } else {
+            checkedWidth = getResources().getDimensionPixelOffset(R.dimen.dp_4);
+            normalWidth = checkedWidth;
+        }
+
         mViewPager.setIndicatorStyle(IndicatorStyle.CIRCLE)
                 .setIndicatorSlideMode(mSlideMode)
                 .setIndicatorGravity(IndicatorGravity.CENTER)
                 .setIndicatorSliderGap(getResources().getDimensionPixelOffset(R.dimen.dp_6))
-                .setIndicatorHeight(getResources().getDimensionPixelOffset(R.dimen.dp_4))
+                .setIndicatorSliderRadius(normalWidth, checkedWidth)
                 .setOnPageClickListener(position -> ToastUtils.show("position:" + position))
-                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setIndicatorSliderRadius(getResources().getDimensionPixelOffset(R.dimen.dp_4)).create(getPicList(4));
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color)).create(getPicList(4));
     }
 
     private void setupDashIndicator() {
@@ -157,7 +159,8 @@ public class IndicatorFragment extends BaseFragment {
     }
 
     private int getNormalWidth() {
-        if (mSlideMode == IndicatorSlideMode.SMOOTH || mSlideMode == IndicatorSlideMode.WORM) {
+        if (mSlideMode == IndicatorSlideMode.SMOOTH || mSlideMode == IndicatorSlideMode.WORM
+                || mSlideMode == IndicatorSlideMode.COLOR) {
             return getResources().getDimensionPixelOffset(R.dimen.dp_10);
         } else {
             return getResources().getDimensionPixelOffset(R.dimen.dp_4);

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

@@ -117,7 +117,7 @@ public class OthersFragment extends BaseFragment implements View.OnClickListener
                 .setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
                 .setIndicatorVisibility(View.VISIBLE)
                 .setIndicatorGravity(IndicatorGravity.CENTER)
-                .create(getPicList(4));
+                .create(getMDrawableList());
     }
 
     private IIndicator getDrawableIndicator() {

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

@@ -60,7 +60,7 @@ public class PageFragment extends BaseFragment {
         mRadioGroupPageStyle = view.findViewById(R.id.rg_page_style);
         radioButton = view.findViewById(R.id.rb_multi_page);
         mViewPager
-                .setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
+                .setIndicatorSlideMode(IndicatorSlideMode.SCALE)
                 .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .setIndicatorSliderRadius(getResources().getDimensionPixelOffset(R.dimen.dp_4), getResources().getDimensionPixelOffset(R.dimen.dp_5))
                 .setOnPageClickListener(position -> ToastUtils.show("position:" + position))

+ 13 - 14
app/src/main/res/layout/fragment_indicator.xml

@@ -67,15 +67,6 @@
                     android:text="ROUND_RECT"
                     android:textSize="@dimen/sp_16" />
 
-                <RadioButton
-                    android:id="@+id/rb_tmall"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginEnd="15dp"
-                    android:layout_marginBottom="@dimen/dp_10"
-                    android:text="Tmall Indicator Style"
-                    android:textSize="@dimen/sp_16" />
-
 
             </RadioGroup>
 
@@ -116,14 +107,13 @@
                     android:text="WORM"
                     android:textSize="@dimen/sp_16" />
 
-
                 <RadioButton
-                    android:id="@+id/rb_normal"
+                    android:id="@+id/rb_color"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginEnd="15dp"
                     android:layout_marginBottom="@dimen/dp_10"
-                    android:text="NORMAL"
+                    android:text="COLOR"
                     android:textSize="@dimen/sp_16" />
 
                 <RadioButton
@@ -133,8 +123,17 @@
                     android:layout_marginEnd="15dp"
                     android:layout_marginBottom="@dimen/dp_10"
                     android:text="SCALE"
-                    android:textSize="@dimen/sp_16"
-                    android:visibility="gone" />
+                    android:textSize="@dimen/sp_16" />
+
+                <RadioButton
+                    android:id="@+id/rb_normal"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginEnd="15dp"
+                    android:layout_marginBottom="@dimen/dp_10"
+                    android:text="NORMAL"
+                    android:textSize="@dimen/sp_16" />
+
 
             </RadioGroup>
 

+ 1 - 0
app/src/main/res/layout/item_header_view.xml

@@ -3,6 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:visibility="gone"
     android:orientation="vertical">
 
     <RelativeLayout

+ 2 - 1
bannerview/build.gradle

@@ -31,7 +31,8 @@ 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.2'
+    api 'com.github.zhpanvip:viewpagerindicator:1.0.3'
     implementation 'androidx.viewpager2:viewpager2:1.0.0'
     implementation 'androidx.core:core-ktx:1.2.0'
+//    api project(path: ':indicator')
 }

+ 39 - 39
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -199,7 +199,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
                 int endY = (int) ev.getY();
                 int disX = Math.abs(endX - startX);
                 int disY = Math.abs(endY - startY);
-                int orientation = mBannerManager.bannerOptions().getOrientation();
+                int orientation = mBannerManager.getBannerOptions().getOrientation();
                 if (orientation == ViewPager2.ORIENTATION_VERTICAL) {
                     onVerticalActionMove(endY, disX, disY);
                 } else if (orientation == ViewPager2.ORIENTATION_HORIZONTAL) {
@@ -270,7 +270,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     }
 
     private void setIndicatorValues(List<T> list) {
-        BannerOptions bannerOptions = mBannerManager.bannerOptions();
+        BannerOptions bannerOptions = mBannerManager.getBannerOptions();
         bannerOptions.resetIndicatorOptions();
         if (isCustomIndicator && null != mIndicatorView) {
             initIndicator(mIndicatorView);
@@ -283,7 +283,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     }
 
     private void initIndicator(IIndicator indicatorView) {
-        mIndicatorLayout.setVisibility(mBannerManager.bannerOptions().getIndicatorVisibility());
+        mIndicatorLayout.setVisibility(mBannerManager.getBannerOptions().getIndicatorVisibility());
         mIndicatorView = indicatorView;
         if (((View) mIndicatorView).getParent() == null) {
             mIndicatorLayout.removeAllViews();
@@ -296,7 +296,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     private void initIndicatorGravity() {
         RelativeLayout.LayoutParams layoutParams =
                 (RelativeLayout.LayoutParams) ((View) mIndicatorView).getLayoutParams();
-        switch (mBannerManager.bannerOptions().getIndicatorGravity()) {
+        switch (mBannerManager.getBannerOptions().getIndicatorGravity()) {
             case CENTER:
                 layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
                 break;
@@ -311,7 +311,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
 
     private void initIndicatorViewMargin() {
         ViewGroup.MarginLayoutParams layoutParams = (MarginLayoutParams) ((View) mIndicatorView).getLayoutParams();
-        BannerOptions.IndicatorMargin indicatorMargin = mBannerManager.bannerOptions().getIndicatorMargin();
+        BannerOptions.IndicatorMargin indicatorMargin = mBannerManager.getBannerOptions().getIndicatorMargin();
         if (indicatorMargin == null) {
             int dp10 = BannerUtils.dp2px(10);
             layoutParams.setMargins(dp10, dp10, dp10, dp10);
@@ -322,7 +322,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     }
 
     private void initRoundCorner() {
-        int roundCorner = mBannerManager.bannerOptions().getRoundRectRadius();
+        int roundCorner = mBannerManager.getBannerOptions().getRoundRectRadius();
         if (roundCorner > 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
             ViewStyleSetter viewStyleSetter = new ViewStyleSetter(this);
             viewStyleSetter.setRoundRect(roundCorner);
@@ -333,7 +333,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
         if (mBannerPagerAdapter == null) {
             throw new NullPointerException("You must set adapter for BannerViewPager");
         }
-        BannerOptions bannerOptions = mBannerManager.bannerOptions();
+        BannerOptions bannerOptions = mBannerManager.getBannerOptions();
         if (bannerOptions.getScrollDuration() != 0)
             ScrollDurationManger.reflectLayoutManager(mViewPager, bannerOptions.getScrollDuration());
         currentPosition = 0;
@@ -353,22 +353,22 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     }
 
     private void initPageStyle() {
-        switch (mBannerManager.bannerOptions().getPageStyle()) {
+        switch (mBannerManager.getBannerOptions().getPageStyle()) {
             case PageStyle.MULTI_PAGE:
                 setMultiPageStyle(false, MAX_SCALE);
                 break;
             case PageStyle.MULTI_PAGE_OVERLAP:
-                setMultiPageStyle(true, mBannerManager.bannerOptions().getPageScale());
+                setMultiPageStyle(true, mBannerManager.getBannerOptions().getPageScale());
                 break;
             case PageStyle.MULTI_PAGE_SCALE:
-                setMultiPageStyle(false, mBannerManager.bannerOptions().getPageScale());
+                setMultiPageStyle(false, mBannerManager.getBannerOptions().getPageScale());
                 break;
         }
     }
 
     private void setMultiPageStyle(boolean overlap, float scale) {
         RecyclerView recyclerView = (RecyclerView) mViewPager.getChildAt(0);
-        BannerOptions bannerOptions = mBannerManager.bannerOptions();
+        BannerOptions bannerOptions = mBannerManager.getBannerOptions();
         int orientation = bannerOptions.getOrientation();
         int padding = bannerOptions.getPageMargin() + bannerOptions.getRevealWidth();
         if (orientation == ViewPager2.ORIENTATION_HORIZONTAL)
@@ -389,15 +389,15 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     }
 
     private int getInterval() {
-        return mBannerManager.bannerOptions().getInterval();
+        return mBannerManager.getBannerOptions().getInterval();
     }
 
     private boolean isAutoPlay() {
-        return mBannerManager.bannerOptions().isAutoPlay();
+        return mBannerManager.getBannerOptions().isAutoPlay();
     }
 
     private boolean isCanLoop() {
-        return mBannerManager.bannerOptions().isCanLoop();
+        return mBannerManager.getBannerOptions().isCanLoop();
     }
 
     /**
@@ -445,7 +445,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param radius round radius
      */
     public BannerViewPager<T, VH> setRoundCorner(int radius) {
-        mBannerManager.bannerOptions().setRoundRectRadius(radius);
+        mBannerManager.getBannerOptions().setRoundRectRadius(radius);
         return this;
     }
 
@@ -467,9 +467,9 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param autoPlay is enable auto play
      */
     public BannerViewPager<T, VH> setAutoPlay(boolean autoPlay) {
-        mBannerManager.bannerOptions().setAutoPlay(autoPlay);
+        mBannerManager.getBannerOptions().setAutoPlay(autoPlay);
         if (isAutoPlay()) {
-            mBannerManager.bannerOptions().setCanLoop(true);
+            mBannerManager.getBannerOptions().setCanLoop(true);
         }
         return this;
     }
@@ -480,9 +480,9 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param canLoop is can loop
      */
     public BannerViewPager<T, VH> setCanLoop(boolean canLoop) {
-        mBannerManager.bannerOptions().setCanLoop(canLoop);
+        mBannerManager.getBannerOptions().setCanLoop(canLoop);
         if (!canLoop) {
-            mBannerManager.bannerOptions().setAutoPlay(false);
+            mBannerManager.getBannerOptions().setAutoPlay(false);
         }
         return this;
     }
@@ -493,7 +493,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param interval loop interval,unit is millisecond.
      */
     public BannerViewPager<T, VH> setInterval(int interval) {
-        mBannerManager.bannerOptions().setInterval(interval);
+        mBannerManager.getBannerOptions().setInterval(interval);
         return this;
     }
 
@@ -529,7 +529,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param pageMargin page margin
      */
     public BannerViewPager<T, VH> setPageMargin(int pageMargin) {
-        mBannerManager.bannerOptions().setPageMargin(pageMargin);
+        mBannerManager.getBannerOptions().setPageMargin(pageMargin);
         if (mMarginPageTransformer != null) {
             mCompositePageTransformer.removeTransformer(mMarginPageTransformer);
         }
@@ -555,7 +555,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param scrollDuration page scroll duration
      */
     public BannerViewPager<T, VH> setScrollDuration(int scrollDuration) {
-        mBannerManager.bannerOptions().setScrollDuration(scrollDuration);
+        mBannerManager.getBannerOptions().setScrollDuration(scrollDuration);
         return this;
     }
 
@@ -567,7 +567,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      */
     public BannerViewPager<T, VH> setIndicatorSliderColor(@ColorInt int normalColor,
                                                           @ColorInt int checkedColor) {
-        mBannerManager.bannerOptions().setIndicatorSliderColor(normalColor, checkedColor);
+        mBannerManager.getBannerOptions().setIndicatorSliderColor(normalColor, checkedColor);
         return this;
     }
 
@@ -594,7 +594,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param checkedRadius checked circle radius
      */
     public BannerViewPager<T, VH> setIndicatorSliderRadius(int normalRadius, int checkedRadius) {
-        mBannerManager.bannerOptions().setIndicatorSliderWidth(normalRadius * 2, checkedRadius * 2);
+        mBannerManager.getBannerOptions().setIndicatorSliderWidth(normalRadius * 2, checkedRadius * 2);
         return this;
     }
 
@@ -615,12 +615,12 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      *                    if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#CIRCLE } means checked circle diameter
      */
     public BannerViewPager<T, VH> setIndicatorSliderWidth(int normalWidth, int checkWidth) {
-        mBannerManager.bannerOptions().setIndicatorSliderWidth(normalWidth, checkWidth);
+        mBannerManager.getBannerOptions().setIndicatorSliderWidth(normalWidth, checkWidth);
         return this;
     }
 
     public BannerViewPager<T, VH> setIndicatorHeight(int indicatorHeight) {
-        mBannerManager.bannerOptions().setIndicatorHeight(indicatorHeight);
+        mBannerManager.getBannerOptions().setIndicatorHeight(indicatorHeight);
         return this;
     }
 
@@ -630,7 +630,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param indicatorGap indicator gap
      */
     public BannerViewPager<T, VH> setIndicatorSliderGap(int indicatorGap) {
-        mBannerManager.bannerOptions().setIndicatorGap(indicatorGap);
+        mBannerManager.getBannerOptions().setIndicatorGap(indicatorGap);
         return this;
     }
 
@@ -640,7 +640,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param visibility One of {@link View#VISIBLE}, {@link View#INVISIBLE}, or {@link View#GONE}.
      */
     public BannerViewPager<T, VH> setIndicatorVisibility(@Visibility int visibility) {
-        mBannerManager.bannerOptions().setIndicatorVisibility(visibility);
+        mBannerManager.getBannerOptions().setIndicatorVisibility(visibility);
         return this;
     }
 
@@ -653,7 +653,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      *                {@link com.zhpan.bannerview.constants.IndicatorGravity#END}
      */
     public BannerViewPager<T, VH> setIndicatorGravity(@AIndicatorGravity int gravity) {
-        mBannerManager.bannerOptions().setIndicatorGravity(gravity);
+        mBannerManager.getBannerOptions().setIndicatorGravity(gravity);
         return this;
     }
 
@@ -665,7 +665,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @see com.zhpan.indicator.enums.IndicatorSlideMode#SMOOTH
      */
     public BannerViewPager<T, VH> setIndicatorSlideMode(@AIndicatorSlideMode int slideMode) {
-        mBannerManager.bannerOptions().setIndicatorSlideMode(slideMode);
+        mBannerManager.getBannerOptions().setIndicatorSlideMode(slideMode);
         return this;
     }
 
@@ -693,7 +693,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @see com.zhpan.indicator.enums.IndicatorStyle#ROUND_RECT
      */
     public BannerViewPager<T, VH> setIndicatorStyle(@AIndicatorStyle int indicatorStyle) {
-        mBannerManager.bannerOptions().setIndicatorStyle(indicatorStyle);
+        mBannerManager.getBannerOptions().setIndicatorStyle(indicatorStyle);
         return this;
     }
 
@@ -712,7 +712,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      *                    {@link androidx.viewpager2.widget.ViewPager2#ORIENTATION_VERTICAL}
      */
     public BannerViewPager<T, VH> setOrientation(@ViewPager2.Orientation int orientation) {
-        mBannerManager.bannerOptions().setOrientation(orientation);
+        mBannerManager.getBannerOptions().setOrientation(orientation);
         return this;
     }
 
@@ -771,8 +771,8 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
     }
 
     public BannerViewPager<T, VH> setPageStyle(@APageStyle int pageStyle, float pageScale) {
-        mBannerManager.bannerOptions().setPageStyle(pageStyle);
-        mBannerManager.bannerOptions().setPageScale(pageScale);
+        mBannerManager.getBannerOptions().setPageStyle(pageStyle);
+        mBannerManager.getBannerOptions().setPageScale(pageScale);
         return this;
     }
 
@@ -781,7 +781,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * @param revealWidth 一屏多页模式下两边页面显露出来的宽度
      */
     public BannerViewPager<T, VH> setRevealWidth(int revealWidth) {
-        mBannerManager.bannerOptions().setRevealWidth(revealWidth);
+        mBannerManager.getBannerOptions().setRevealWidth(revealWidth);
         return this;
     }
 
@@ -789,18 +789,18 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      * 建议使用默认的offScreenPageLimit
      */
     public BannerViewPager<T, VH> setOffScreenPageLimit(int offScreenPageLimit) {
-        mBannerManager.bannerOptions().setOffScreenPageLimit(offScreenPageLimit);
+        mBannerManager.getBannerOptions().setOffScreenPageLimit(offScreenPageLimit);
         return this;
     }
 
 
     public BannerViewPager<T, VH> setIndicatorMargin(int left, int top, int right, int bottom) {
-        mBannerManager.bannerOptions().setIndicatorMargin(left, top, right, bottom);
+        mBannerManager.getBannerOptions().setIndicatorMargin(left, top, right, bottom);
         return this;
     }
 
     public BannerViewPager<T, VH> setUserInputEnabled(boolean userInputEnabled) {
-        mBannerManager.bannerOptions().setUserInputEnabled(userInputEnabled);
+        mBannerManager.getBannerOptions().setUserInputEnabled(userInputEnabled);
         return this;
     }
 
@@ -828,7 +828,7 @@ public class BannerViewPager<T, VH extends BaseViewHolder<T>> extends RelativeLa
      */
     @Deprecated
     public BannerViewPager<T, VH> disableTouchScroll(boolean disableTouchScroll) {
-        mBannerManager.bannerOptions().setUserInputEnabled(!disableTouchScroll);
+        mBannerManager.getBannerOptions().setUserInputEnabled(!disableTouchScroll);
         return this;
     }
 

+ 1 - 1
bannerview/src/main/java/com/zhpan/bannerview/manager/BannerManager.java

@@ -20,7 +20,7 @@ public class BannerManager {
         mAttributeController = new AttributeController(mBannerOptions);
     }
 
-    public BannerOptions bannerOptions() {
+    public BannerOptions getBannerOptions() {
         if (mBannerOptions == null) {
             mBannerOptions = new BannerOptions();
         }

+ 2 - 3
bannerview/src/main/res/values/attrs.xml

@@ -6,14 +6,12 @@
         <attr name="bvp_scroll_duration" format="integer" />
         <attr name="bvp_can_loop" format="boolean" />
         <attr name="bvp_auto_play" format="boolean" />
-        <!--<attr name="indicator_gravity" format="integer"/>-->
         <attr name="bvp_indicator_checked_color" format="color" />
         <attr name="bvp_indicator_normal_color" format="color" />
         <attr name="bvp_indicator_radius" format="dimension" />
         <attr name="bvp_round_corner" format="dimension" />
         <attr name="bvp_page_margin" format="dimension" />
         <attr name="bvp_reveal_width" format="dimension" />
-
         <attr name="bvp_indicator_style" format="enum">
             <enum name="circle" value="0" />
             <enum name="dash" value="2" />
@@ -23,6 +21,8 @@
             <enum name="normal" value="0" />
             <enum name="smooth" value="2" />
             <enum name="worm" value="3" />
+            <enum name="scale" value="4" />
+            <enum name="color" value="5" />
         </attr>
         <attr name="bvp_indicator_gravity" format="enum">
             <enum name="center" value="0" />
@@ -35,7 +35,6 @@
             <enum name="multi_page_overlap" value="4" />
             <enum name="multi_page_scale" value="8" />
         </attr>
-
         <attr name="bvp_indicator_visibility" format="enum">
             <enum name="visible" value="0" />
             <enum name="invisible" value="4" />

+ 2 - 0
settings.gradle

@@ -1 +1,3 @@
 include ':app', ':bannerview', ':ideahttp'
+//include "indicator"
+//project(':indicator').projectDir = file('../viewpagerindicator/indicator')