Explorar o código

Merge pull request #82 from zhpanvip/dev_2.7.0

2.7.0
zhpanvip %!s(int64=5) %!d(string=hai) anos
pai
achega
05102f9e6e
Modificáronse 48 ficheiros con 352 adicións e 1186 borrados
  1. 25 20
      README.md
  2. 25 20
      README_CN.md
  3. 1 1
      app/build.gradle
  4. BIN=BIN
      app/release/app-release.apk
  5. 0 2
      app/src/main/java/com/example/zhpan/circleviewpager/activity/PhotoViewActivity.kt
  6. 4 4
      app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt
  7. 4 4
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java
  8. 16 16
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/IndicatorFragment.java
  9. 5 5
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java
  10. 4 4
      app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java
  11. 2 1
      app/src/main/java/com/example/zhpan/circleviewpager/view/DrawableIndicator.java
  12. 3 1
      app/src/main/java/com/example/zhpan/circleviewpager/view/FigureIndicatorView.java
  13. 93 87
      app/src/main/res/layout/fragment_others.xml
  14. 1 1
      app/src/main/res/layout/item_header_view.xml
  15. 2 1
      bannerview/build.gradle
  16. 127 67
      bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java
  17. 0 24
      bannerview/src/main/java/com/zhpan/bannerview/annotation/AIndicatorSlideMode.java
  18. 0 24
      bannerview/src/main/java/com/zhpan/bannerview/annotation/AIndicatorStyle.java
  19. 0 14
      bannerview/src/main/java/com/zhpan/bannerview/constants/IndicatorSlideMode.java
  20. 0 13
      bannerview/src/main/java/com/zhpan/bannerview/constants/IndicatorStyle.java
  21. 0 157
      bannerview/src/main/java/com/zhpan/bannerview/indicator/BaseIndicatorView.java
  22. 12 7
      bannerview/src/main/java/com/zhpan/bannerview/indicator/CircleIndicatorView.java
  23. 12 8
      bannerview/src/main/java/com/zhpan/bannerview/indicator/DashIndicatorView.java
  24. 0 20
      bannerview/src/main/java/com/zhpan/bannerview/indicator/IIndicator.java
  25. 0 63
      bannerview/src/main/java/com/zhpan/bannerview/indicator/IndicatorView.java
  26. 0 78
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/BaseDrawer.java
  27. 0 87
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/CircleDrawer.java
  28. 0 23
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/DashDrawer.java
  29. 0 27
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/DrawerFactory.java
  30. 0 46
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/DrawerProxy.java
  31. 0 20
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/IDrawer.java
  32. 0 108
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/RectDrawer.java
  33. 0 23
      bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/RoundRectDrawer.java
  34. 2 4
      bannerview/src/main/java/com/zhpan/bannerview/manager/AttributeController.java
  35. 14 19
      bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java
  36. 0 177
      bannerview/src/main/java/com/zhpan/bannerview/manager/IndicatorOptions.java
  37. 0 10
      bannerview/src/main/java/com/zhpan/bannerview/utils/BannerUtils.java
  38. BIN=BIN
      image/pay_alipay.jpg
  39. BIN=BIN
      image/pay_wechat.png
  40. BIN=BIN
      image/slide_circle_normal.gif
  41. BIN=BIN
      image/slide_circle_smooth.gif
  42. BIN=BIN
      image/slide_circle_worm.gif
  43. BIN=BIN
      image/style_dash_normal.gif
  44. BIN=BIN
      image/style_dash_smooth.gif
  45. BIN=BIN
      image/style_dash_worm.gif
  46. BIN=BIN
      image/style_round_rect_normal.gif
  47. BIN=BIN
      image/style_round_rect_smooth.gif
  48. BIN=BIN
      image/style_round_rect_worm.gif

+ 25 - 20
README.md

@@ -17,7 +17,7 @@
 ![QRCode](https://github.com/zhpanvip/BannerViewPager/blob/master/image/qrcode.png)
 
 
-### 1.setPageStyle
+### 1.PageStyle
 
 [Sample Click Here](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java)
 
@@ -25,7 +25,11 @@
 |--|--|--|
 | ![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi.gif) |![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi_scale.gif) |![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi_overlay.gif) |
 
-### 2.setIndicatorStyle and setIndicatorSlideMode
+### 2.Indicator
+
+The IndicatorView was split from BannerViewPager,the new repo is [ViewPagerIndicator](https://github.com/zhpanvip/viewpagerindicator),Click the link to see more information about [ViewPagerIndicator](https://github.com/zhpanvip/viewpagerindicator)
+
+#### (1)setIndicatorStyle and setIndicatorSlideMode
 
 BannerViewPager supports three Indicator Styles and three Indicator Slide mode now. 
 
@@ -33,11 +37,11 @@ BannerViewPager supports three Indicator Styles and three Indicator Slide mode n
 
 | Attrs | CIRCLE | DASH | ROUND_RECT |
 |--|--|--|--|
-| NORMAL| ![CIRCLE_NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_circle_normal.gif) | ![DASH_NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash_normal.gif) | ![ROUND_RECT_NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_round_rect_normal.gif) |
-| SMOOTH| ![CIRCLE_SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_circle_smooth.gif) | ![DASH_SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash_smooth.gif) | ![ROUND_RECT_SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_round_rect_smooth.gif) |
-| WORM| ![CIRCLE_WORM](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_circle_worm.gif) | ![DASH_WORM](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash_worm.gif) | ![ROUND_WORM](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_round_rect_worm.gif) |
+| NORMAL| ![CIRCLE_NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/slide_circle_normal.gif) | ![DASH_NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_dash_normal.gif) | ![ROUND_RECT_NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_round_rect_normal.gif) |
+| SMOOTH| ![CIRCLE_SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/slide_circle_smooth.gif) | ![DASH_SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_dash_smooth.gif) | ![ROUND_RECT_SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_round_rect_smooth.gif) |
+| WORM| ![CIRCLE_WORM](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/slide_circle_worm.gif) | ![DASH_WORM](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_dash_worm.gif) | ![ROUND_WORM](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_round_rect_worm.gif) |
 
-### 3.Custom Indicator
+#### (2)Custom Indicator
 
 It's also support to custom indicator style,just need extends BaseIndicatorView or implement the IIndicator and override methods, then you can draw Indicators for whatever you want.
 
@@ -48,7 +52,7 @@ It's also support to custom indicator style,just need extends BaseIndicatorView
 | ![CIRCLE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custum.gif) | ![DASH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custom2.gif) | ![NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custom1.gif) |
 
 
-### 4.setPageTransformerStyle
+### 3.PageTransformerStyle
 
 [Sample Click Here](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.java)
 
@@ -72,12 +76,12 @@ It's also support to custom indicator style,just need extends BaseIndicatorView
 | BannerViewPager<T, VH> setIndicatorGravity(int gravity) | set indicator gravity |enum(CENTER、START、END) default value CENTER |
 | BannerViewPager<T, VH> setIndicatorColor(int normalColor,int checkedColor) | set indicator color |normalColor:color of indicator dot not selected, default value  "#8C6C6D72", checkedColor:color of indicator selected default value is "#8C18171C" |
 | BannerViewPager<T, VH> setIndicatorSlideMode(int slideMode)  | set indicator slide mode | enum(NORMAL;SMOOTH;WORM),default value NORMAL  |
-| BannerViewPager<T, VH> setIndicatorRadius(int radius) | set indicator dot radius | default value is 4dp|
-| BannerViewPager<T, VH> setIndicatorRadius(int normalRadius,int checkRadius)  |set indicator dot radius  |  normalRadius:normal radius of indicator dot,  checkedRadius:checked radius of indicator dot,default value is 4dp |
-| BannerViewPager<T, VH> setIndicatorWidth(int indicatorWidth) | set indicator dot width,if it's Circle indicator the parameter is diameter of circle | default value is 8dp|
-| BannerViewPager<T, VH> setIndicatorWidth(int normalWidth, int checkWidth) | set indicator dot width,if is circle style,the width is diameter of circle | default is 8dp |
+| BannerViewPager<T, VH> setIndicatorSliderRadius(int radius) | set indicator dot radius | default value is 4dp|
+| BannerViewPager<T, VH> setIndicatorSliderRadius(int normalRadius,int checkRadius)  |set indicator dot radius  |  normalRadius:normal radius of indicator dot,  checkedRadius:checked radius of indicator dot,default value is 4dp |
+| BannerViewPager<T, VH> setIndicatorSliderWidth(int indicatorWidth) | set indicator dot width,if it's Circle indicator the parameter is diameter of circle | default value is 8dp|
+| BannerViewPager<T, VH> setIndicatorSliderWidth(int normalWidth, int checkWidth) | set indicator dot width,if is circle style,the width is diameter of circle | default is 8dp |
 | BannerViewPager<T, VH> setIndicatorHeight(int indicatorHeight) | set indicator hight,it's only used when the indicator style is dash | default value is normalIndicatorWidth/2 |
-| BannerViewPager<T, VH> setIndicatorGap(int indicatorMargin) | set the gap of indicator dot| default value is indicator dot width(or the diameter of circle)|
+| BannerViewPager<T, VH> setIndicatorSliderGap(int indicatorMargin) | set the gap of indicator dot| default value is indicator dot width(or the diameter of circle)|
 | BannerViewPager<T, VH> setIndicatorView(IIndicator indicatorView) | set custom indicator|The custom indicator must extends BaseIndicatorView or implements IIndicator |
 | BannerViewPager<T, VH> setPageTransformerStyle(int style) | set transform style |  |
 | BannerViewPager<T, VH> setCurrentItem(int item) | Set the currently selected page. |  add in v2.3.5 |
@@ -249,7 +253,7 @@ Java:
                 .setCanLoop(false)
                 .setAutoPlay(true)
                 .setRoundCorner(getResources().getDimensionPixelOffset(R.dimen.dp_7))
-                .setIndicatorColor(Color.parseColor("#935656"), Color.parseColor("#FF4C39"))
+                .setIndicatorSliderColor(Color.parseColor("#935656"), Color.parseColor("#FF4C39"))
                 .setIndicatorGravity(IndicatorGravity.END)
                 .setScrollDuration(1000).setHolderCreator(NetViewHolder::new)
                 .setOnPageClickListener(position -> {
@@ -390,19 +394,20 @@ public class FigureIndicatorView extends BaseIndicatorView {
  - [x] Fix issue #34 which Indicator smooth slide problem(2.6.1).
  - [ ] Migrate to ViewPager2 (3.0.0)
 
-## Sponsor
+## FAQ
 
-**开源不易 随心赞赏**
+ **If you have any question regard to BannerViewPager, please scan the QR code and join the QQ group to communicate.**
 
-| Alipay | WeChat |
-|--|--|
-| ![Alipay](https://github.com/zhpanvip/BannerViewPager/blob/master/image/pay_alipay.jpg) |  ![WeChat](https://github.com/zhpanvip/BannerViewPager/blob/master/image/pay_wechat.png) |
+ ![QQ交流群60902509](https://github.com/zhpanvip/BannerViewPager/blob/master/image/qq_group.png)
 
 
-## If you have any question you can scan the QR code to join the QQ group to communicate.
+## <span id="Sponsor"> Sponsor </span>
 
- ![QQ交流群60902509](https://github.com/zhpanvip/BannerViewPager/blob/master/image/qq_group.png)
+**开源不易 随心赞赏**
 
+| Alipay | WeChat |
+|--|--|
+| ![Alipay](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/pay_alipay.jpg) |  ![WeChat](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/pay_wechat.png) |
 
 ##  More details
 

+ 25 - 20
README_CN.md

@@ -19,7 +19,7 @@
 ![扫描下载Demo](https://github.com/zhpanvip/BannerViewPager/blob/master/image/qrcode.png)
 
 
-### 1.setPageStyle
+### 1.PageStyle
 
 [一屏多页Demo](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java)
 
@@ -27,17 +27,21 @@
 |--|--|--|
 | ![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi.gif) |![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi_scale.gif) |![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi_overlay.gif) |
 
-### 2.setIndicatorStyle 与 setIndicatorSlideMode
+### 2.Indicator 
+
+目前指示器已经从BannerViewPager中分离出来,现在单独为一个仓库,新的仓库地址为[ViewPagerIndicator](https://github.com/zhpanvip/viewpagerindicator),你可以点击连接了解更多关于[ViewPagerIndicator](https://github.com/zhpanvip/viewpagerindicator)的信息。
+
+#### (1)IndicatorStyle 与 IndicatorSlideMode
 
 BannerViewPager目前已支持三种IndicatorViewStyle,以及三种IndicatorSlideMode,分别如下:
 
 | 属性 | CIRCLE | DASH | ROUND_RECT |
 |--|--|--|--|
-| NORMAL| ![CIRCLE_NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_circle_normal.gif) | ![DASH_NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash_normal.gif) | ![ROUND_RECT_NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_round_rect_normal.gif) |
-| SMOOTH| ![CIRCLE_SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_circle_smooth.gif) | ![DASH_SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash_smooth.gif) | ![ROUND_RECT_SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_round_rect_smooth.gif) |
-| WORM| ![CIRCLE_WORM](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_circle_worm.gif) | ![DASH_WORM](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash_worm.gif) | ![ROUND_WORM](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_round_rect_worm.gif) |
+| NORMAL| ![CIRCLE_NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/slide_circle_normal.gif) | ![DASH_NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_dash_normal.gif) | ![ROUND_RECT_NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_round_rect_normal.gif) |
+| SMOOTH| ![CIRCLE_SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/slide_circle_smooth.gif) | ![DASH_SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_dash_smooth.gif) | ![ROUND_RECT_SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_round_rect_smooth.gif) |
+| WORM| ![CIRCLE_WORM](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/slide_circle_worm.gif) | ![DASH_WORM](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_dash_worm.gif) | ![ROUND_WORM](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/style_round_rect_worm.gif) |
 
-### 3.Custom Indicator
+#### (2)Custom Indicator
 
 同时BannerViewPager还提供了自定义IndicatorView的功能。只要继承BaseIndicatorView或者实现IIndicator接口,并重写相应方法,就可以为所欲为的打造任意的Indicator了。
 
@@ -48,7 +52,7 @@ BannerViewPager目前已支持三种IndicatorViewStyle,以及三种IndicatorSlid
 | ![CIRCLE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custom.gif) | ![DASH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custom1.gif) | ![NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custom2.gif) |
 
 
-### 4.setPageTransformerStyle
+### 3.PageTransformerStyle
 
 [TransformStyle Demo](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.java)
 
@@ -73,12 +77,12 @@ BannerViewPager目前已支持三种IndicatorViewStyle,以及三种IndicatorSlid
 | BannerViewPager<T, VH> setIndicatorGravity(int gravity) | 指示器位置 |可选值(CENTER、START、END)默认值CENTER |
 | BannerViewPager<T, VH> setIndicatorColor(int normalColor,int checkedColor) | 指示器圆点颜色 |normalColor:未选中时颜色默认"#8C6C6D72", checkedColor:选中时颜色 默认"#8C18171C" |
 | BannerViewPager<T, VH> setIndicatorSlideMode(int slideMode)  | 设置Indicator滑动模式 | 可选(NORMAL、SMOOTH、WORM),默认值NORMAL  |
-| BannerViewPager<T, VH> setIndicatorRadius(int radius) | 设置指示器圆点半径 | 默认值4dp|
-| BannerViewPager<T, VH> setIndicatorRadius(int normalRadius,int checkRadius)  |设置指示器圆点半径  |  normalRadius:未选中时半径  checkedRadius:选中时的半径,默认值4dp |
-| BannerViewPager<T, VH> setIndicatorWidth(int indicatorWidth) | 设置指示器宽度,如果是圆形指示器,则为直径 |  默认值8dp|
-| BannerViewPager<T, VH> setIndicatorWidth(int normalWidth, int checkWidth) | 设置指示器宽度,如果是圆形指示器,则为直径 | 默认值8dp |
+| BannerViewPager<T, VH> setIndicatorSliderRadius(int radius) | 设置指示器圆点半径 | 默认值4dp|
+| BannerViewPager<T, VH> setIndicatorSliderRadius(int normalRadius,int checkRadius)  |设置指示器圆点半径  |  normalRadius:未选中时半径  checkedRadius:选中时的半径,默认值4dp |
+| BannerViewPager<T, VH> setIndicatorSliderWidth(int indicatorWidth) | 设置指示器宽度,如果是圆形指示器,则为直径 |  默认值8dp|
+| BannerViewPager<T, VH> setIndicatorSliderWidth(int normalWidth, int checkWidth) | 设置指示器宽度,如果是圆形指示器,则为直径 | 默认值8dp |
 | BannerViewPager<T, VH> setIndicatorHeight(int indicatorHeight) | 设置指示器高度,仅在Indicator样式为DASH时有效 | 默认值normalIndicatorWidth/2 |
-| BannerViewPager<T, VH> setIndicatorGap(int indicatorMargin) | 指示器圆点间距| 默认值为指示器宽度(或者是圆的直径)|
+| BannerViewPager<T, VH> setIndicatorSliderGap(int indicatorMargin) | 指示器圆点间距| 默认值为指示器宽度(或者是圆的直径)|
 | BannerViewPager<T, VH> setIndicatorView(IIndicator indicatorView) | 设置自定义指示器|自定义View需要继承BaseIndicatorView或实现IIndicator |
 | BannerViewPager<T, VH> setPageTransformerStyle(int style) | 设置页面Transformer内置样式 |  |
 | BannerViewPager<T, VH> setCurrentItem(int item) | Set the currently selected page. | 2.3.5新增 |
@@ -249,7 +253,7 @@ Java:
                 .setCanLoop(false)
                 .setAutoPlay(true)
                 .setRoundCorner(getResources().getDimensionPixelOffset(R.dimen.dp_7))
-                .setIndicatorColor(Color.parseColor("#935656"), Color.parseColor("#FF4C39"))
+                .setIndicatorSliderColor(Color.parseColor("#935656"), Color.parseColor("#FF4C39"))
                 .setIndicatorGravity(IndicatorGravity.END)
                 .setScrollDuration(1000).setHolderCreator(NetViewHolder::new)
                 .setOnPageClickListener(position -> {
@@ -389,18 +393,19 @@ public class FigureIndicatorView extends BaseIndicatorView {
  - [x] 修复 issue #34 Indicator 在Smooth模式下存在的问题 (2.6.1).
  - [ ] ViewPager更换为ViewPager2 (3.0.0)
 
-## Sponsor
+## 有问题可以扫码加QQ群交流
 
-**开源不易 随心赞赏**
+ ![QQ交流群60902509](https://github.com/zhpanvip/BannerViewPager/blob/master/image/qq_group.png)
 
-| 支付宝 | 微信支付 |
-|--|--|
-| ![NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/pay_alipay.jpb) |  ![SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/pay_wechat.png) |
 
 
-## 有问题可以扫码加QQ群交流
+## <span id="Sponsor"> Sponsor </span>
 
- ![QQ交流群60902509](https://github.com/zhpanvip/BannerViewPager/blob/master/image/qq_group.png)
+**开源不易 随心赞赏**
+
+| 支付宝 | 微信支付 |
+|--|--|
+| ![NORMAL](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/pay_alipay.jpb) |  ![SMOOTH](https://github.com/zhpanvip/viewpagerindicator/blob/master/image/pay_wechat.png) |
 
 
 ##  更多详情请参看以下链接

+ 1 - 1
app/build.gradle

@@ -5,7 +5,7 @@ android {
     compileSdkVersion 28
     buildToolsVersion '28.0.3'
     defaultConfig {
-        applicationId "com.example.zhpan.circleviewpager"
+        applicationId "com.example.zhpan.bannerviewpager"
         minSdkVersion 19
         targetSdkVersion 28
         versionCode 1

BIN=BIN
app/release/app-release.apk


+ 0 - 2
app/src/main/java/com/example/zhpan/circleviewpager/activity/PhotoViewActivity.kt

@@ -6,8 +6,6 @@ import android.os.Bundle
 import com.example.zhpan.circleviewpager.R
 import com.example.zhpan.circleviewpager.viewholder.PhotoViewHolder
 import com.zhpan.bannerview.BannerViewPager
-import com.zhpan.bannerview.constants.IndicatorSlideMode
-import com.zhpan.bannerview.holder.HolderCreator
 
 class PhotoViewActivity : BaseDataActivity() {
 

+ 4 - 4
app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt

@@ -14,10 +14,10 @@ import com.example.zhpan.circleviewpager.bean.CustomBean
 import com.example.zhpan.circleviewpager.viewholder.CustomPageViewHolder
 import com.zhpan.bannerview.BannerViewPager
 import com.zhpan.bannerview.adapter.OnPageChangeListenerAdapter
-import com.zhpan.bannerview.constants.IndicatorSlideMode
 import com.zhpan.bannerview.constants.TransformerStyle
 import com.zhpan.bannerview.holder.HolderCreator
 import com.zhpan.bannerview.utils.BannerUtils
+import com.zhpan.indicator.enums.IndicatorSlideMode
 
 import java.util.ArrayList
 import java.util.Random
@@ -59,11 +59,11 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder>
                 .setPageTransformerStyle(transforms[Random().nextInt(6)])
                 .setScrollDuration(ANIMATION_DURATION)
                 .setIndicatorMargin(0, 0, 0, resources.getDimension(R.dimen.dp_100).toInt())
-                .setIndicatorGap(resources.getDimension(R.dimen.dp_10).toInt())
-                .setIndicatorColor(ContextCompat.getColor(this, R.color.white),
+                .setIndicatorSliderGap(resources.getDimension(R.dimen.dp_10).toInt())
+                .setIndicatorSliderColor(ContextCompat.getColor(this, R.color.white),
                         ContextCompat.getColor(this, R.color.white_alpha_75))
                 .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
-                .setIndicatorRadius(resources.getDimension(R.dimen.dp_3).toInt(), resources.getDimension(R.dimen.dp_4_5).toInt())
+                .setIndicatorSliderRadius(resources.getDimension(R.dimen.dp_3).toInt(), resources.getDimension(R.dimen.dp_4_5).toInt())
                 .setOnPageChangeListener(object : OnPageChangeListenerAdapter() {
                     override fun onPageSelected(position: Int) {
                         BannerUtils.log("position:$position")

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

@@ -22,11 +22,11 @@ import com.scwang.smartrefresh.header.MaterialHeader;
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
 import com.zhpan.bannerview.BannerViewPager;
 import com.zhpan.bannerview.adapter.OnPageChangeListenerAdapter;
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.indicator.IndicatorView;
 import com.zhpan.idea.net.common.ResponseObserver;
 import com.zhpan.idea.utils.LogUtils;
 import com.zhpan.idea.utils.RxUtil;
+import com.zhpan.indicator.IndicatorView;
+import com.zhpan.indicator.enums.IndicatorSlideMode;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -140,9 +140,9 @@ public class HomeFragment extends BaseFragment {
                 .setIndicatorSlideMode(IndicatorSlideMode.WORM)
                 .setInterval(5000)
                 .setScrollDuration(1200)
-                .setIndicatorRadius(getResources().getDimensionPixelSize(R.dimen.dp_3))
+                .setIndicatorSliderRadius(getResources().getDimensionPixelSize(R.dimen.dp_3))
                 .setIndicatorView(mIndicatorView)// 这里为了设置标题故用了自定义Indicator,如果无需标题则没必要添加此行代码
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .setHolderCreator(NetViewHolder::new)
                 .setOnPageChangeListener(new OnPageChangeListenerAdapter() {
                     @Override

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

@@ -8,12 +8,12 @@ import android.widget.RadioGroup;
 import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
 import com.zhpan.bannerview.BannerViewPager;
-import com.zhpan.bannerview.annotation.AIndicatorSlideMode;
 import com.zhpan.bannerview.constants.IndicatorGravity;
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.constants.IndicatorStyle;
 import com.zhpan.bannerview.utils.BannerUtils;
 import com.zhpan.idea.utils.ToastUtils;
+import com.zhpan.indicator.annotation.AIndicatorSlideMode;
+import com.zhpan.indicator.enums.IndicatorSlideMode;
+import com.zhpan.indicator.enums.IndicatorStyle;
 
 /**
  * Created by zhpan on 2018/7/24.
@@ -60,7 +60,7 @@ public class IndicatorFragment extends BaseFragment {
         mRadioGroupStyle = view.findViewById(R.id.rg_indicator_style);
         mRadioGroupMode = view.findViewById(R.id.rg_slide_mode);
         mViewPager = view.findViewById(R.id.banner_view);
-        mViewPager.setIndicatorGap(BannerUtils.dp2px(6))
+        mViewPager.setIndicatorSliderGap(BannerUtils.dp2px(6))
                 .setRoundCorner(BannerUtils.dp2px(6))
                 .setHolderCreator(() -> new ImageResourceViewHolder(0));
         initRadioGroup();
@@ -109,10 +109,10 @@ public class IndicatorFragment extends BaseFragment {
     private void setupTMallIndicator() {
         mViewPager
                 .setIndicatorStyle(IndicatorStyle.DASH)
-                .setIndicatorGap(0)
+                .setIndicatorSliderGap(0)
                 .setIndicatorSlideMode(mSlideMode)
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setIndicatorWidth(getResources().getDimensionPixelOffset(R.dimen.dp_15))
+                .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(getMDrawableList());
     }
@@ -122,25 +122,25 @@ public class IndicatorFragment extends BaseFragment {
         int normalWidth = getNormalWidth();
         mViewPager.setIndicatorStyle(IndicatorStyle.ROUND_RECT)
                 .setIndicatorGravity(IndicatorGravity.CENTER)
-                .setIndicatorGap(BannerUtils.dp2px(4))
+                .setIndicatorSliderGap(BannerUtils.dp2px(4))
                 .setPageMargin(0)
                 .setIndicatorSlideMode(mSlideMode)
                 .setIndicatorHeight(getResources().getDimensionPixelOffset(R.dimen.dp_4))
                 .setOnPageClickListener(position -> ToastUtils.show("position:" + position))
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setIndicatorWidth(normalWidth, checkedWidth).create(getMDrawableList());
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setIndicatorSliderWidth(normalWidth, checkedWidth).create(getMDrawableList());
     }
 
     private void setupCircleIndicator() {
         mViewPager.setIndicatorStyle(IndicatorStyle.CIRCLE)
                 .setIndicatorSlideMode(mSlideMode)
                 .setIndicatorGravity(IndicatorGravity.CENTER)
-                .setIndicatorGap(getResources().getDimensionPixelOffset(R.dimen.dp_6))
+                .setIndicatorSliderGap(getResources().getDimensionPixelOffset(R.dimen.dp_6))
                 .setIndicatorHeight(getResources().getDimensionPixelOffset(R.dimen.dp_4))
                 .setPageMargin(0)
                 .setOnPageClickListener(position -> ToastUtils.show("position:" + position))
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setIndicatorRadius(getResources().getDimensionPixelOffset(R.dimen.dp_4)).create(getMDrawableList());
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setIndicatorSliderRadius(getResources().getDimensionPixelOffset(R.dimen.dp_4)).create(getMDrawableList());
     }
 
     private void setupDashIndicator() {
@@ -150,10 +150,10 @@ public class IndicatorFragment extends BaseFragment {
                 .setIndicatorHeight(getResources().getDimensionPixelOffset(R.dimen.dp_3))
                 .setIndicatorGravity(IndicatorGravity.CENTER)
                 .setIndicatorSlideMode(mSlideMode)
-                .setIndicatorGap(getResources().getDimensionPixelOffset(R.dimen.dp_3))
+                .setIndicatorSliderGap(getResources().getDimensionPixelOffset(R.dimen.dp_3))
                 .setPageMargin(0)
-                .setIndicatorWidth(normalWidth, checkedWidth)
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setIndicatorSliderWidth(normalWidth, checkedWidth)
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .create(getMDrawableList());
     }
 

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

@@ -14,11 +14,11 @@ import com.example.zhpan.circleviewpager.view.FigureIndicatorView;
 import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
 import com.zhpan.bannerview.BannerViewPager;
 import com.zhpan.bannerview.constants.IndicatorGravity;
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.indicator.IIndicator;
-import com.zhpan.bannerview.indicator.IndicatorView;
 import com.zhpan.bannerview.utils.BannerUtils;
 import com.zhpan.idea.utils.ToastUtils;
+import com.zhpan.indicator.IndicatorView;
+import com.zhpan.indicator.base.IIndicator;
+import com.zhpan.indicator.enums.IndicatorSlideMode;
 
 import java.lang.reflect.Field;
 import java.util.Random;
@@ -68,10 +68,10 @@ public class OthersFragment extends BaseFragment implements View.OnClickListener
         mIndicatorView = view.findViewById(R.id.indicator_view);
         view.findViewById(R.id.tv_photo_view).setOnClickListener(this);
         view.findViewById(R.id.btn_refresh).setOnClickListener(v -> updateData());
-        mViewPager.setIndicatorGap(BannerUtils.dp2px(6))
+        mViewPager.setIndicatorSliderGap(BannerUtils.dp2px(6))
                 .setRoundCorner(BannerUtils.dp2px(6))
                 .setOnPageClickListener(position -> ToastUtils.show("Position:" + position))
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .setHolderCreator(() -> new ImageResourceViewHolder(0));
         initRadioGroup();
     }

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

@@ -9,10 +9,10 @@ import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
 import com.zhpan.bannerview.BannerViewPager;
 import com.zhpan.bannerview.annotation.APageStyle;
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
 import com.zhpan.bannerview.constants.PageStyle;
 import com.zhpan.bannerview.utils.BannerUtils;
 import com.zhpan.idea.utils.ToastUtils;
+import com.zhpan.indicator.enums.IndicatorSlideMode;
 
 /**
  * Created by zhpan on 2018/7/24.
@@ -57,8 +57,8 @@ public class PageFragment extends BaseFragment {
         mViewPager
                 .setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
                 .setHolderCreator(() -> new ImageResourceViewHolder(getResources().getDimensionPixelOffset(R.dimen.dp_5)))
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
-                .setIndicatorRadius(getResources().getDimensionPixelOffset(R.dimen.dp_4),getResources().getDimensionPixelOffset(R.dimen.dp_5))
+                .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))
                 .setInterval(5000);
         initRadioGroup();
@@ -105,7 +105,7 @@ public class PageFragment extends BaseFragment {
                 .setRevealWidth(BannerUtils.dp2px(0))
                 .setPageStyle(PageStyle.MULTI_PAGE)
                 .setHolderCreator(() -> new ImageResourceViewHolder(getResources().getDimensionPixelOffset(R.dimen.dp_5)))
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .setOnPageClickListener(position -> ToastUtils.show("position:" + position))
                 .setInterval(5000).create(getMDrawableList());
     }

+ 2 - 1
app/src/main/java/com/example/zhpan/circleviewpager/view/DrawableIndicator.java

@@ -14,7 +14,8 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatDrawableManager;
 import androidx.core.graphics.drawable.DrawableCompat;
 
-import com.zhpan.bannerview.indicator.BaseIndicatorView;
+import com.zhpan.indicator.base.BaseIndicatorView;
+
 
 /**
  * @ author : zhouweibin

+ 3 - 1
app/src/main/java/com/example/zhpan/circleviewpager/view/FigureIndicatorView.java

@@ -9,8 +9,8 @@ import android.util.AttributeSet;
 import androidx.annotation.ColorInt;
 import androidx.annotation.Nullable;
 
-import com.zhpan.bannerview.indicator.BaseIndicatorView;
 import com.zhpan.bannerview.utils.BannerUtils;
+import com.zhpan.indicator.base.BaseIndicatorView;
 
 /**
  * <pre>
@@ -28,6 +28,8 @@ public class FigureIndicatorView extends BaseIndicatorView {
 
     private int textSize = BannerUtils.dp2px(13);
 
+    private Paint mPaint;
+
     public FigureIndicatorView(Context context) {
         this(context, null);
     }

+ 93 - 87
app/src/main/res/layout/fragment_others.xml

@@ -1,107 +1,113 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:layout_height="match_parent">
 
-    <com.zhpan.bannerview.BannerViewPager
-        android:id="@+id/banner_view"
+    <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="@dimen/dp_180"
-        android:layout_margin="@dimen/dp_10"
-        app:bvp_indicator_visibility="visible"
-        app:bvp_round_corner="@dimen/dp_8" />
+        android:layout_height="match_parent"
+        android:orientation="vertical">
 
-    <com.zhpan.bannerview.indicator.IndicatorView
-        android:id="@+id/indicator_view"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/banner_view"
-        android:layout_centerHorizontal="true" />
+        <com.zhpan.bannerview.BannerViewPager
+            android:id="@+id/banner_view"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_180"
+            android:layout_margin="@dimen/dp_10"
+            app:bvp_indicator_visibility="visible"
+            app:bvp_round_corner="@dimen/dp_8" />
 
-    <TextView
-        android:id="@+id/tv_page_style"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/indicator_view"
-        android:layout_marginStart="@dimen/dp_10"
-        android:layout_marginTop="@dimen/dp_10"
-        android:text="@string/custom_style"
-        android:textColor="#000000"
-        android:textSize="@dimen/sp_18"
-        android:textStyle="bold" />
-
-    <RadioGroup
-        android:id="@+id/rg_indicator_style"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/tv_page_style"
-        android:orientation="vertical"
-        android:padding="@dimen/dp_15">
-
-        <RadioButton
-            android:id="@+id/rb_indicator_below"
+        <com.zhpan.indicator.IndicatorView
+            android:id="@+id/indicator_view"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginEnd="@dimen/dp_15"
-            android:layout_marginBottom="@dimen/dp_10"
-            android:text="Indicator below of Banner"
-            android:textSize="@dimen/sp_16" />
+            android:layout_below="@id/banner_view"
+            android:layout_centerHorizontal="true" />
 
-        <RadioButton
-            android:id="@+id/rb_dash"
+        <TextView
+            android:id="@+id/tv_page_style"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginEnd="@dimen/dp_15"
-            android:layout_marginBottom="@dimen/dp_10"
-            android:text="Custom Indicator"
-            android:textSize="@dimen/sp_16" />
+            android:layout_below="@id/indicator_view"
+            android:layout_marginStart="@dimen/dp_10"
+            android:layout_marginTop="@dimen/dp_10"
+            android:text="@string/custom_style"
+            android:textColor="#000000"
+            android:textSize="@dimen/sp_18"
+            android:textStyle="bold" />
 
-        <RadioButton
-            android:id="@+id/rb_drawable"
-            android:layout_width="wrap_content"
+        <RadioGroup
+            android:id="@+id/rg_indicator_style"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginEnd="15dp"
-            android:layout_marginBottom="@dimen/dp_10"
-            android:text="Drawable Indicator(BitmapDrawable)"
-            android:textSize="@dimen/sp_16" />
+            android:layout_below="@id/tv_page_style"
+            android:orientation="vertical"
+            android:padding="@dimen/dp_15">
 
-        <RadioButton
-            android:id="@+id/rb_vector_drawable"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="15dp"
-            android:layout_marginBottom="@dimen/dp_10"
-            android:text="Drawable Indicator(VectorDrawable)"
-            android:textSize="@dimen/sp_16" />
+            <RadioButton
+                android:id="@+id/rb_indicator_below"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/dp_15"
+                android:layout_marginBottom="@dimen/dp_10"
+                android:text="Indicator below of Banner"
+                android:textSize="@dimen/sp_16" />
 
-    </RadioGroup>
+            <RadioButton
+                android:id="@+id/rb_dash"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/dp_15"
+                android:layout_marginBottom="@dimen/dp_10"
+                android:text="Custom Indicator"
+                android:textSize="@dimen/sp_16" />
 
-    <TextView
-        android:id="@+id/tv_photo_view"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/dp_45"
-        android:layout_below="@id/rg_indicator_style"
-        android:background="@color/white"
-        android:gravity="center"
-        android:onClick="onClick"
-        android:text="@string/wrapper_photo_view"
-        android:textColor="#000000"
-        android:textSize="@dimen/sp_16" />
+            <RadioButton
+                android:id="@+id/rb_drawable"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="15dp"
+                android:layout_marginBottom="@dimen/dp_10"
+                android:text="Drawable Indicator(BitmapDrawable)"
+                android:textSize="@dimen/sp_16" />
+
+            <RadioButton
+                android:id="@+id/rb_vector_drawable"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="15dp"
+                android:layout_marginBottom="@dimen/dp_10"
+                android:text="Drawable Indicator(VectorDrawable)"
+                android:textSize="@dimen/sp_16" />
+
+        </RadioGroup>
+
+        <TextView
+            android:id="@+id/btn_refresh"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_45"
+            android:layout_below="@id/rg_indicator_style"
+            android:layout_centerHorizontal="true"
+            android:background="@color/white"
+            android:gravity="center"
+            android:text="Refresh"
+            android:textColor="#000000"
+            android:textSize="@dimen/sp_16" />
+
+        <TextView
+            android:id="@+id/tv_photo_view"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_45"
+            android:layout_below="@id/btn_refresh"
+            android:background="@color/white"
+            android:gravity="center"
+            android:layout_marginTop="@dimen/dp_10"
+            android:onClick="onClick"
+            android:text="@string/wrapper_photo_view"
+            android:textColor="#000000"
+            android:textSize="@dimen/sp_16" />
 
-    <TextView
-        android:id="@+id/btn_refresh"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/dp_45"
-        android:layout_below="@id/tv_photo_view"
-        android:layout_centerHorizontal="true"
-        android:background="@color/white"
-        android:gravity="center"
-        android:layout_marginTop="@dimen/dp_10"
-        android:text="Refresh"
-        android:textColor="#000000"
-        android:textSize="@dimen/sp_16" />
 
 
-</RelativeLayout>
+    </RelativeLayout>
+</androidx.core.widget.NestedScrollView>

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

@@ -29,7 +29,7 @@
             android:textSize="@dimen/sp_14"
             tools:text="This is Title" />
 
-        <com.zhpan.bannerview.indicator.IndicatorView
+        <com.zhpan.indicator.IndicatorView
             android:id="@+id/indicator_view"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

+ 2 - 1
bannerview/build.gradle

@@ -29,7 +29,8 @@ dependencies {
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test:runner:1.2.0'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-    implementation 'androidx.appcompat:appcompat:1.0.2'
+    implementation 'androidx.appcompat:appcompat:1.1.0'
+    api 'com.github.zhpanvip:viewpagerindicator:1.0.0'
 }
 
 version = "2.6.4"

+ 127 - 67
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -16,16 +16,10 @@ import android.view.ViewGroup;
 import android.widget.RelativeLayout;
 
 import com.zhpan.bannerview.annotation.AIndicatorGravity;
-import com.zhpan.bannerview.annotation.AIndicatorSlideMode;
-import com.zhpan.bannerview.annotation.AIndicatorStyle;
 import com.zhpan.bannerview.annotation.APageStyle;
 import com.zhpan.bannerview.annotation.ATransformerStyle;
 import com.zhpan.bannerview.annotation.Visibility;
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.constants.IndicatorStyle;
 import com.zhpan.bannerview.constants.PageStyle;
-import com.zhpan.bannerview.indicator.IndicatorView;
-import com.zhpan.bannerview.indicator.IIndicator;
 import com.zhpan.bannerview.manager.BannerManager;
 import com.zhpan.bannerview.manager.BannerOptions;
 import com.zhpan.bannerview.transform.ScaleInTransformer;
@@ -36,6 +30,10 @@ import com.zhpan.bannerview.holder.ViewHolder;
 import com.zhpan.bannerview.provider.ViewStyleSetter;
 import com.zhpan.bannerview.transform.PageTransformerFactory;
 import com.zhpan.bannerview.view.CatchViewPager;
+import com.zhpan.indicator.IndicatorView;
+import com.zhpan.indicator.annotation.AIndicatorSlideMode;
+import com.zhpan.indicator.annotation.AIndicatorStyle;
+import com.zhpan.indicator.base.IIndicator;
 
 import java.util.List;
 
@@ -231,7 +229,8 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
             initIndicator(new IndicatorView(getContext()));
         }
         mIndicatorView.setIndicatorOptions(bannerOptions.getIndicatorOptions());
-        mIndicatorView.setPageSize(list.size());
+        bannerOptions.getIndicatorOptions().setPageSize(list.size());
+//        mIndicatorView.setPageSize(list.size());
     }
 
     private void initIndicator(IIndicator indicatorView) {
@@ -516,65 +515,57 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
      * @param checkedColor checked color of indicator
      * @param normalColor  unchecked color of indicator
      */
-    public BannerViewPager<T, VH> setIndicatorColor(@ColorInt int normalColor,
-                                                    @ColorInt int checkedColor) {
-        mBannerManager.bannerOptions().setIndicatorCheckedColor(checkedColor);
-        mBannerManager.bannerOptions().setIndicatorNormalColor(normalColor);
+    public BannerViewPager<T, VH> setIndicatorSliderColor(@ColorInt int normalColor,
+                                                          @ColorInt int checkedColor) {
+        mBannerManager.bannerOptions().setIndicatorSliderColor(normalColor, checkedColor);
         return this;
     }
 
+
     /**
      * set indicator circle radius
      * <p>
-     * if the indicator style is {@link IndicatorStyle#DASH} or {@link IndicatorStyle#ROUND_RECT}
+     * if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#DASH}
+     * or {@link com.zhpan.indicator.enums.IndicatorStyle#ROUND_RECT}
      * the indicator dash width=2*radius
      *
      * @param radius 指示器圆点半径
      */
-    public BannerViewPager<T, VH> setIndicatorRadius(int radius) {
-        setIndicatorRadius(radius, radius);
+    public BannerViewPager<T, VH> setIndicatorSliderRadius(int radius) {
+        setIndicatorSliderRadius(radius, radius);
         return this;
     }
 
+
     /**
      * set indicator circle radius
      *
      * @param normalRadius  unchecked circle radius
      * @param checkedRadius checked circle radius
      */
-    public BannerViewPager<T, VH> setIndicatorRadius(int normalRadius, int checkedRadius) {
-        mBannerManager.bannerOptions().setNormalIndicatorWidth(normalRadius * 2);
-        mBannerManager.bannerOptions().setCheckedIndicatorWidth(checkedRadius * 2);
+    public BannerViewPager<T, VH> setIndicatorSliderRadius(int normalRadius, int checkedRadius) {
+        mBannerManager.bannerOptions().setIndicatorSliderWidth(normalRadius * 2, checkedRadius * 2);
         return this;
     }
 
-
-    /**
-     * Set indicator dash width,if indicator style is {@link IndicatorStyle#CIRCLE},
-     * the indicator circle radius is indicatorWidth/2.
-     *
-     * @param indicatorWidth indicator dash width.
-     */
-    public BannerViewPager<T, VH> setIndicatorWidth(int indicatorWidth) {
-        setIndicatorWidth(indicatorWidth, indicatorWidth);
+    public BannerViewPager<T, VH> setIndicatorSliderWidth(int indicatorWidth) {
+        setIndicatorSliderWidth(indicatorWidth, indicatorWidth);
         return this;
     }
 
-
     /**
-     * Set indicator dash width,if indicator style is {@link IndicatorStyle#CIRCLE},
+     * Set indicator dash width,if indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#CIRCLE},
      * the indicator circle radius is indicatorWidth/2.
      *
-     * @param normalWidth if the indicator style is {@link IndicatorStyle#DASH} the params means unchecked dash width
-     *                    if the indicator style is {@link IndicatorStyle#ROUND_RECT}  means unchecked round rectangle width
-     *                    if the indicator style is {@link IndicatorStyle#CIRCLE } means unchecked circle diameter
-     * @param checkWidth  if the indicator style is {@link IndicatorStyle#DASH} the params means checked dash width
-     *                    if the indicator style is {@link IndicatorStyle#ROUND_RECT} the params means checked round rectangle width
-     *                    if the indicator style is {@link IndicatorStyle#CIRCLE } means checked circle diameter
-     */
-    public BannerViewPager<T, VH> setIndicatorWidth(int normalWidth, int checkWidth) {
-        mBannerManager.bannerOptions().setNormalIndicatorWidth(normalWidth);
-        mBannerManager.bannerOptions().setCheckedIndicatorWidth(checkWidth);
+     * @param normalWidth if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#DASH} the params means unchecked dash width
+     *                    if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#ROUND_RECT}  means unchecked round rectangle width
+     *                    if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#CIRCLE } means unchecked circle diameter
+     * @param checkWidth  if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#DASH} the params means checked dash width
+     *                    if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#ROUND_RECT} the params means checked round rectangle width
+     *                    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);
         return this;
     }
 
@@ -588,21 +579,11 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
      *
      * @param indicatorGap indicator gap
      */
-    public BannerViewPager<T, VH> setIndicatorGap(int indicatorGap) {
+    public BannerViewPager<T, VH> setIndicatorSliderGap(int indicatorGap) {
         mBannerManager.bannerOptions().setIndicatorGap(indicatorGap);
         return this;
     }
 
-    /**
-     * @param showIndicator is show indicator
-     * @deprecated Use {@link #setIndicatorVisibility(int)} instead.
-     */
-    @Deprecated
-    public BannerViewPager<T, VH> showIndicator(boolean showIndicator) {
-        mIndicatorLayout.setVisibility(showIndicator ? VISIBLE : GONE);
-        return this;
-    }
-
     /**
      * Set the visibility state of indicator view.
      *
@@ -627,11 +608,11 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     }
 
     /**
-     * Set Indicator slide mode,default value is {@link IndicatorSlideMode#NORMAL}
+     * Set Indicator slide mode,default value is {@link com.zhpan.indicator.enums.IndicatorSlideMode#NORMAL}
      *
      * @param slideMode Indicator slide mode
-     * @see com.zhpan.bannerview.constants.IndicatorSlideMode#NORMAL
-     * @see com.zhpan.bannerview.constants.IndicatorSlideMode#SMOOTH
+     * @see com.zhpan.indicator.enums.IndicatorSlideMode#NORMAL
+     * @see com.zhpan.indicator.enums.IndicatorSlideMode#SMOOTH
      */
     public BannerViewPager<T, VH> setIndicatorSlideMode(@AIndicatorSlideMode int slideMode) {
         mBannerManager.bannerOptions().setIndicatorSlideMode(slideMode);
@@ -657,9 +638,9 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
      * Set indicator style
      *
      * @param indicatorStyle indicator style
-     * @see IndicatorStyle#CIRCLE
-     * @see IndicatorStyle#DASH
-     * @see IndicatorStyle#ROUND_RECT
+     * @see com.zhpan.indicator.enums.IndicatorStyle#CIRCLE
+     * @see com.zhpan.indicator.enums.IndicatorStyle#DASH
+     * @see com.zhpan.indicator.enums.IndicatorStyle#ROUND_RECT
      */
     public BannerViewPager<T, VH> setIndicatorStyle(@AIndicatorStyle int indicatorStyle) {
         mBannerManager.bannerOptions().setIndicatorStyle(indicatorStyle);
@@ -675,18 +656,6 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         initBannerData(list);
     }
 
-//    public void update(List<T> list) {
-//        if (null != list) {
-//            if (mBannerPagerAdapter != null && mBannerManager.bannerOptions().getPageStyle() == PageStyle.NORMAL) {
-//                mBannerPagerAdapter.setList(list);
-//                mIndicatorView.setPageSize(list.size());
-////                setCurrentItem(0, false);
-//            } else {
-//                initBannerData(list);
-//            }
-//        }
-//    }
-
     /**
      * @return the currently selected page position.
      */
@@ -794,4 +763,95 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         mOnPageChangeListener = onPageChangeListener;
         return this;
     }
+
+
+    /**
+     * set indicator circle radius
+     *
+     * @param normalRadius  unchecked circle radius
+     * @param checkedRadius checked circle radius
+     * @deprecated use {@link #setIndicatorSliderRadius(int,int)} instead
+     */
+    @Deprecated
+    public BannerViewPager<T, VH> setIndicatorRadius(int normalRadius, int checkedRadius) {
+        mBannerManager.bannerOptions().setIndicatorSliderWidth(normalRadius * 2, checkedRadius * 2);
+        return this;
+    }
+
+    /**
+     * set indicator circle radius
+     * <p>
+     * if the indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#DASH}
+     * or {@link com.zhpan.indicator.enums.IndicatorStyle#ROUND_RECT}
+     * the indicator dash width=2*radius
+     *
+     * @param radius 指示器圆点半径
+     * @deprecated use {@link #setIndicatorSliderRadius(int)} instead
+     */
+    @Deprecated
+    public BannerViewPager<T, VH> setIndicatorRadius(int radius) {
+        setIndicatorSliderRadius(radius, radius);
+        return this;
+    }
+
+
+    /**
+     * Set indicator dash width,if indicator style is {@link com.zhpan.indicator.enums.IndicatorStyle#CIRCLE},
+     * the indicator circle radius is indicatorWidth/2.
+     *
+     * @param indicatorWidth indicator dash width.
+     * @deprecated Use {@link #setIndicatorSliderWidth(int)} instead.
+     */
+    @Deprecated
+    public BannerViewPager<T, VH> setIndicatorWidth(int indicatorWidth) {
+        setIndicatorSliderWidth(indicatorWidth, indicatorWidth);
+        return this;
+    }
+
+
+    /**
+     *
+     * @deprecated Use {@link #setIndicatorSliderWidth(int,int)} instead.
+     */
+    @Deprecated
+    public BannerViewPager<T, VH> setIndicatorWidth(int normalWidth, int checkWidth) {
+        mBannerManager.bannerOptions().setIndicatorSliderWidth(normalWidth, checkWidth);
+        return this;
+    }
+
+    /**
+     * set indicator color
+     *
+     * @param checkedColor checked color of indicator
+     * @param normalColor  unchecked color of indicator
+     * @deprecated use {@link #setIndicatorSliderColor(int, int)} instead
+     */
+    @Deprecated
+    public BannerViewPager<T, VH> setIndicatorColor(@ColorInt int normalColor,
+                                                    @ColorInt int checkedColor) {
+        mBannerManager.bannerOptions().setIndicatorSliderColor(normalColor, checkedColor);
+        return this;
+    }
+
+
+    /**
+     * Set Indicator gap of dash/circle
+     *
+     * @param indicatorGap indicator gap
+     * @deprecated Use {@link #setIndicatorSliderGap(int)} instead.
+     */
+    public BannerViewPager<T, VH> setIndicatorGap(int indicatorGap) {
+        mBannerManager.bannerOptions().setIndicatorGap(indicatorGap);
+        return this;
+    }
+
+    /**
+     * @param showIndicator is show indicator
+     * @deprecated Use {@link #setIndicatorVisibility(int)} instead.
+     */
+    @Deprecated
+    public BannerViewPager<T, VH> showIndicator(boolean showIndicator) {
+        mIndicatorLayout.setVisibility(showIndicator ? VISIBLE : GONE);
+        return this;
+    }
 }

+ 0 - 24
bannerview/src/main/java/com/zhpan/bannerview/annotation/AIndicatorSlideMode.java

@@ -1,24 +0,0 @@
-package com.zhpan.bannerview.annotation;
-
-import androidx.annotation.IntDef;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import static com.zhpan.bannerview.constants.IndicatorSlideMode.NORMAL;
-import static com.zhpan.bannerview.constants.IndicatorSlideMode.SMOOTH;
-import static com.zhpan.bannerview.constants.IndicatorSlideMode.WORM;
-
-/**
- * <pre>
- *   Created by zhangpan on 2019-10-18.
- *   Description:
- * </pre>
- */
-@IntDef({NORMAL, SMOOTH,WORM})
-@Retention(RetentionPolicy.SOURCE)
-@Target({ElementType.PARAMETER,ElementType.FIELD})
-public @interface AIndicatorSlideMode {
-}

+ 0 - 24
bannerview/src/main/java/com/zhpan/bannerview/annotation/AIndicatorStyle.java

@@ -1,24 +0,0 @@
-package com.zhpan.bannerview.annotation;
-
-import androidx.annotation.IntDef;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import static com.zhpan.bannerview.constants.IndicatorStyle.CIRCLE;
-import static com.zhpan.bannerview.constants.IndicatorStyle.DASH;
-import static com.zhpan.bannerview.constants.IndicatorStyle.ROUND_RECT;
-
-/**
- * <pre>
- *   Created by zhangpan on 2019-10-18.
- *   Description:
- * </pre>
- */
-@IntDef({CIRCLE, DASH,ROUND_RECT})
-@Retention(RetentionPolicy.SOURCE)
-@Target(ElementType.PARAMETER)
-public @interface AIndicatorStyle {
-}

+ 0 - 14
bannerview/src/main/java/com/zhpan/bannerview/constants/IndicatorSlideMode.java

@@ -1,14 +0,0 @@
-package com.zhpan.bannerview.constants;
-
-/**
- * <pre>
- *   Created by zhangpan on 2019-10-18.
- *   Description:
- * </pre>
- */
-public interface IndicatorSlideMode {
-    int NORMAL = 0;
-    int SMOOTH = 2;
-    int WORM = 3;
-//    int THIN_WORM = 4;
-}

+ 0 - 13
bannerview/src/main/java/com/zhpan/bannerview/constants/IndicatorStyle.java

@@ -1,13 +0,0 @@
-package com.zhpan.bannerview.constants;
-
-/**
- * <pre>
- *   Created by zhangpan on 2019-10-18.
- *   Description:
- * </pre>
- */
-public interface IndicatorStyle {
-    int CIRCLE = 0;
-    int DASH = 1 << 1;
-    int ROUND_RECT = 1 << 2;
-}

+ 0 - 157
bannerview/src/main/java/com/zhpan/bannerview/indicator/BaseIndicatorView.java

@@ -1,157 +0,0 @@
-package com.zhpan.bannerview.indicator;
-
-import android.content.Context;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-import android.view.View;
-
-import androidx.annotation.Nullable;
-
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-/**
- * <pre>
- *   Created by zhangpan on 2019-09-04.
- *   Description:IndicatorView基类,处理了页面滑动。
- * </pre>
- */
-public class BaseIndicatorView extends View implements IIndicator {
-
-    private IndicatorOptions mIndicatorOptions;
-
-    protected Paint mPaint;
-
-    public BaseIndicatorView(Context context) {
-        super(context);
-    }
-
-    public BaseIndicatorView(Context context, @Nullable AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public BaseIndicatorView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        mIndicatorOptions = new IndicatorOptions();
-        mPaint = new Paint();
-        mPaint.setAntiAlias(true);
-    }
-
-    @Override
-    public void onPageSelected(int position) {
-        if (getSlideMode() == IndicatorSlideMode.NORMAL) {
-            setCurrentPosition(position);
-            setSlideProgress(0);
-            invalidate();
-        }
-    }
-
-    @Override
-    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-        if (getSlideMode() != IndicatorSlideMode.NORMAL && getPageSize() > 1) {
-            scrollSlider(position, positionOffset);
-            invalidate();
-        }
-    }
-
-    private void scrollSlider(int position, float positionOffset) {
-        if (position % getPageSize() == getPageSize() - 1) { //   最后一个页面与第一个页面
-            if (positionOffset < 0.5) {
-                setCurrentPosition(position);
-                setSlideProgress(0);
-            } else {
-                setCurrentPosition(0);
-                setSlideProgress(0);
-            }
-        } else {    //  中间页面
-            setCurrentPosition(position);
-            setSlideProgress(positionOffset);
-        }
-    }
-
-//    private boolean isSlideToRight(int position, float positionOffset) {
-//        int prePosition = mIndicatorOptions.getPrePosition();
-//        if ((prePosition == 0 && position == getPageSize() - 1)) {
-//            return false;
-//        } else if (prePosition == getPageSize() - 1 && position == 0) {
-//            return true;
-//        } else {
-//            return (position + positionOffset - prePosition) > 0;
-//        }
-//    }
-
-    @Override
-    public void setPageSize(int pageSize) {
-        mIndicatorOptions.setPageSize(pageSize);
-        requestLayout();
-    }
-
-
-    public int getPageSize() {
-        return mIndicatorOptions.getPageSize();
-    }
-
-    public int getNormalColor() {
-        return mIndicatorOptions.getNormalColor();
-    }
-
-    public int getCheckedColor() {
-        return mIndicatorOptions.getCheckedColor();
-    }
-
-    public float getIndicatorGap() {
-        return mIndicatorOptions.getIndicatorGap();
-    }
-
-    public float getSlideProgress() {
-        return mIndicatorOptions.getSlideProgress();
-    }
-
-    public int getCurrentPosition() {
-        return mIndicatorOptions.getCurrentPosition();
-    }
-
-    public void setCurrentPosition(int currentPosition) {
-        mIndicatorOptions.setCurrentPosition(currentPosition);
-    }
-
-    public void setIndicatorOptions(IndicatorOptions indicatorOptions) {
-        mIndicatorOptions = indicatorOptions;
-    }
-
-//    public boolean isSlideToRight() {
-//        return mIndicatorOptions.isSlideToRight();
-//    }
-
-    public int getSlideMode() {
-        return mIndicatorOptions.getSlideMode();
-    }
-
-    public float getNormalIndicatorWidth() {
-        return mIndicatorOptions.getNormalIndicatorWidth();
-    }
-
-    public float getCheckedIndicatorWidth() {
-        return mIndicatorOptions.getCheckedIndicatorWidth();
-    }
-
-    private void setSlideProgress(float slideProgress) {
-        mIndicatorOptions.setSlideProgress(slideProgress);
-    }
-
-//    private void setPrePosition(int prePosition) {
-//        mIndicatorOptions.setPrePosition(prePosition);
-//    }
-
-//    private void setSlideToRight(boolean slideToRight) {
-//        mIndicatorOptions.setSlideToRight(slideToRight);
-//    }
-
-    public IndicatorOptions getIndicatorOptions() {
-        return mIndicatorOptions;
-    }
-
-    @Override
-    public void onPageScrollStateChanged(int state) {
-    }
-}

+ 12 - 7
bannerview/src/main/java/com/zhpan/bannerview/indicator/CircleIndicatorView.java

@@ -2,20 +2,24 @@ 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 IndicatorView} instead.
+ * @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);
@@ -27,10 +31,11 @@ public class CircleIndicatorView extends BaseIndicatorView {
 
     public CircleIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
+        mPaint.setAntiAlias(true);
         mPaint.setColor(getNormalColor());
-        mNormalRadius = getNormalIndicatorWidth() / 2;
-        mCheckedRadius = getCheckedIndicatorWidth() / 2;
-        getIndicatorOptions().setIndicatorGap(mNormalRadius * 2);
+        mNormalRadius = getNormalSliderWidth() / 2;
+        mCheckedRadius = getCheckedSliderWidth() / 2;
+        getIndicatorOptions().setSliderGap(mNormalRadius * 2);
     }
 
     @Override
@@ -42,8 +47,8 @@ public class CircleIndicatorView extends BaseIndicatorView {
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        mNormalRadius = getNormalIndicatorWidth() / 2;
-        mCheckedRadius = getCheckedIndicatorWidth() / 2;
+        mNormalRadius = getNormalSliderWidth() / 2;
+        mCheckedRadius = getCheckedSliderWidth() / 2;
         maxRadius = Math.max(mCheckedRadius, mNormalRadius);
         setMeasuredDimension((int) ((getPageSize() - 1) * getIndicatorGap() + 2 * (maxRadius + mNormalRadius * (getPageSize() - 1))),
                 (int) (2 * maxRadius));

+ 12 - 8
bannerview/src/main/java/com/zhpan/bannerview/indicator/DashIndicatorView.java

@@ -2,20 +2,23 @@ package com.zhpan.bannerview.indicator;
 
 import android.content.Context;
 import android.graphics.Canvas;
+import android.graphics.Paint;
 import android.util.AttributeSet;
 
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
+import com.zhpan.indicator.base.BaseIndicatorView;
+import com.zhpan.indicator.enums.IndicatorSlideMode;
 
 /**
  * Created by zhpan on 2017/12/6.
  *
- * @deprecated Use {@link IndicatorView} instead.
+ * @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);
@@ -27,15 +30,16 @@ public class DashIndicatorView extends BaseIndicatorView {
 
     public DashIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
+        mPaint.setAntiAlias(true);
         mPaint.setColor(getNormalColor());
-        sliderHeight = getNormalIndicatorWidth() / 2;
+        sliderHeight = getNormalSliderWidth() / 2;
     }
 
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        maxWidth = Math.max(getNormalIndicatorWidth(), getCheckedIndicatorWidth());
-        minWidth = Math.min(getNormalIndicatorWidth(), getCheckedIndicatorWidth());
+        maxWidth = Math.max(getNormalSliderWidth(), getCheckedSliderWidth());
+        minWidth = Math.min(getNormalSliderWidth(), getCheckedSliderWidth());
         setMeasuredDimension((int) ((getPageSize() - 1) * getIndicatorGap() + maxWidth + (getPageSize() - 1) * minWidth),
                 (int) (getSliderHeight()));
     }
@@ -56,10 +60,10 @@ public class DashIndicatorView extends BaseIndicatorView {
 
 
     private void normalSlide(Canvas canvas, int i) {
-        if (getNormalIndicatorWidth() == getCheckedIndicatorWidth()) {
+        if (getNormalSliderWidth() == getCheckedSliderWidth()) {
             mPaint.setColor(getNormalColor());
-            float left = i * (getNormalIndicatorWidth()) + i * +getIndicatorGap();
-            canvas.drawRect(left, 0, left + getNormalIndicatorWidth(), getSliderHeight(), mPaint);
+            float left = i * (getNormalSliderWidth()) + i * +getIndicatorGap();
+            canvas.drawRect(left, 0, left + getNormalSliderWidth(), getSliderHeight(), mPaint);
             drawSliderStyle(canvas);
         } else {  //  仿支付宝首页轮播图的Indicator
             if (i < getCurrentPosition()) {

+ 0 - 20
bannerview/src/main/java/com/zhpan/bannerview/indicator/IIndicator.java

@@ -1,20 +0,0 @@
-package com.zhpan.bannerview.indicator;
-
-import androidx.viewpager.widget.ViewPager;
-
-import com.zhpan.bannerview.annotation.AIndicatorSlideMode;
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-
-/**
- * <pre>
- *   Created by zhangpan on 2019-09-02.
- *   Description:
- * </pre>
- */
-public interface IIndicator extends ViewPager.OnPageChangeListener {
-
-    void setPageSize(int pageSize);
-
-    void setIndicatorOptions(IndicatorOptions options);
-}

+ 0 - 63
bannerview/src/main/java/com/zhpan/bannerview/indicator/IndicatorView.java

@@ -1,63 +0,0 @@
-package com.zhpan.bannerview.indicator;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.util.AttributeSet;
-
-import androidx.annotation.Nullable;
-
-import com.zhpan.bannerview.indicator.drawer.BaseDrawer;
-import com.zhpan.bannerview.indicator.drawer.DrawerProxy;
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/23.
- *   Description:The Indicator in BannerViewPager,this include three indicator styles,as below:
- *  {@link com.zhpan.bannerview.constants.IndicatorStyle#CIRCLE }
- *  {@link com.zhpan.bannerview.constants.IndicatorStyle#DASH}
- *  {@link com.zhpan.bannerview.constants.IndicatorStyle#ROUND_RECT}
- * </pre>
- */
-public class IndicatorView extends BaseIndicatorView implements IIndicator {
-
-    private DrawerProxy mDrawerProxy;
-
-    public IndicatorView(Context context) {
-        this(context, null);
-    }
-
-    public IndicatorView(Context context, @Nullable AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public IndicatorView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        mDrawerProxy = new DrawerProxy(getIndicatorOptions());
-    }
-
-    @Override
-    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-        super.onLayout(changed, left, top, right, bottom);
-        mDrawerProxy.onLayout(changed,left,top,right,bottom);
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        BaseDrawer.MeasureResult measureResult = mDrawerProxy.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        setMeasuredDimension(measureResult.getMeasureWidth(), measureResult.getMeasureHeight());
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-        mDrawerProxy.onDraw(canvas);
-    }
-
-    @Override
-    public void setIndicatorOptions(IndicatorOptions indicatorOptions) {
-        super.setIndicatorOptions(indicatorOptions);
-        mDrawerProxy.setIndicatorOptions(indicatorOptions);
-    }
-}

+ 0 - 78
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/BaseDrawer.java

@@ -1,78 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Paint;
-import android.graphics.RectF;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/23.
- *   Description:
- * </pre>
- */
-public abstract class BaseDrawer implements IDrawer {
-
-    private MeasureResult mMeasureResult;
-    IndicatorOptions mIndicatorOptions;
-    float maxWidth;
-    float minWidth;
-    Paint mPaint;
-    RectF mRectF;
-
-    BaseDrawer(IndicatorOptions indicatorOptions) {
-        this.mIndicatorOptions = indicatorOptions;
-        mPaint = new Paint();
-        mPaint.setAntiAlias(true);
-        mMeasureResult = new MeasureResult();
-        mRectF = new RectF();
-    }
-
-    @Override
-    public MeasureResult onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        maxWidth = Math.max(mIndicatorOptions.getNormalIndicatorWidth(), mIndicatorOptions.getCheckedIndicatorWidth());
-        minWidth = Math.min(mIndicatorOptions.getNormalIndicatorWidth(), mIndicatorOptions.getCheckedIndicatorWidth());
-        mMeasureResult.setMeasureResult(measureWidth(), measureHeight());
-        return mMeasureResult;
-    }
-
-    protected int measureHeight() {
-        return (int) mIndicatorOptions.getSliderHeight();
-    }
-
-    private int measureWidth() {
-        int pageSize = mIndicatorOptions.getPageSize();
-        float indicatorGap = mIndicatorOptions.getIndicatorGap();
-        return (int) ((pageSize - 1) * indicatorGap + maxWidth + (pageSize - 1) * minWidth);
-    }
-
-    @Override
-    public void onLayout(boolean changed, int left, int top, int right, int bottom) {
-
-    }
-
-    public class MeasureResult {
-
-        int measureWidth;
-
-        int measureHeight;
-
-        void setMeasureResult(int measureWidth, int measureHeight) {
-            this.measureWidth = measureWidth;
-            this.measureHeight = measureHeight;
-        }
-
-        public int getMeasureWidth() {
-            return measureWidth;
-        }
-
-        public int getMeasureHeight() {
-            return measureHeight;
-        }
-
-    }
-
-    protected boolean isWidthEquals() {
-        return mIndicatorOptions.getNormalIndicatorWidth() == mIndicatorOptions.getCheckedIndicatorWidth();
-    }
-}

+ 0 - 87
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/CircleDrawer.java

@@ -1,87 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Canvas;
-import android.graphics.RectF;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-import com.zhpan.bannerview.utils.BannerUtils;
-
-import static com.zhpan.bannerview.constants.IndicatorSlideMode.NORMAL;
-import static com.zhpan.bannerview.constants.IndicatorSlideMode.SMOOTH;
-import static com.zhpan.bannerview.constants.IndicatorSlideMode.WORM;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/23.
- *   Description: Circle Indicator drawer.
- * </pre>
- */
-public class CircleDrawer extends BaseDrawer {
-
-    CircleDrawer(IndicatorOptions indicatorOptions) {
-        super(indicatorOptions);
-    }
-
-    private RectF rectF = new RectF();
-
-    @Override
-    protected int measureHeight() {
-        return (int) maxWidth;
-    }
-
-    @Override
-    public void onDraw(Canvas canvas) {
-        if (mIndicatorOptions.getPageSize() > 1) {
-            drawNormal(canvas);
-            drawSlider(canvas);
-        }
-    }
-
-    private void drawNormal(Canvas canvas) {
-        float normalIndicatorWidth = mIndicatorOptions.getNormalIndicatorWidth();
-        mPaint.setColor(mIndicatorOptions.getNormalColor());
-        for (int i = 0; i < mIndicatorOptions.getPageSize(); i++) {
-            float coordinateX = BannerUtils.getCoordinateX(mIndicatorOptions, maxWidth, i);
-            float coordinateY = BannerUtils.getCoordinateY(maxWidth);
-            drawCircle(canvas, coordinateX, coordinateY, normalIndicatorWidth / 2);
-        }
-    }
-
-    private void drawSlider(Canvas canvas) {
-        mPaint.setColor(mIndicatorOptions.getCheckedColor());
-        switch (mIndicatorOptions.getSlideMode()) {
-            case NORMAL:
-            case SMOOTH:
-                drawCircleSlider(canvas);
-                break;
-            case WORM:
-                drawWormSlider(canvas, mIndicatorOptions.getNormalIndicatorWidth());
-                break;
-        }
-    }
-
-    private void drawCircleSlider(Canvas canvas) {
-        int currentPosition = mIndicatorOptions.getCurrentPosition();
-        float startCoordinateX = BannerUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition);
-        float endCoordinateX = BannerUtils.getCoordinateX(mIndicatorOptions, maxWidth, (currentPosition + 1) % mIndicatorOptions.getPageSize());
-        float coordinateX = startCoordinateX + (endCoordinateX - startCoordinateX) * mIndicatorOptions.getSlideProgress();
-        float coordinateY = BannerUtils.getCoordinateY(maxWidth);
-        float radius = mIndicatorOptions.getCheckedIndicatorWidth() / 2;
-        drawCircle(canvas, coordinateX, coordinateY, radius);
-    }
-
-    private void drawWormSlider(Canvas canvas, float sliderHeight) {
-        float slideProgress = mIndicatorOptions.getSlideProgress();
-        int currentPosition = mIndicatorOptions.getCurrentPosition();
-        float distance = mIndicatorOptions.getIndicatorGap() + mIndicatorOptions.getNormalIndicatorWidth();
-        float startCoordinateX = BannerUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition);
-        float left = startCoordinateX + Math.max(distance * (slideProgress - 0.5f) * 2.0f, 0) - mIndicatorOptions.getNormalIndicatorWidth() / 2;
-        float right = startCoordinateX + Math.min((distance * slideProgress * 2), distance) + mIndicatorOptions.getNormalIndicatorWidth() / 2;
-        rectF.set(left, 0, right, sliderHeight);
-        canvas.drawRoundRect(rectF, sliderHeight, sliderHeight, mPaint);
-    }
-
-    private void drawCircle(Canvas canvas, float coordinateX, float coordinateY, float radius) {
-        canvas.drawCircle(coordinateX, coordinateY, radius, mPaint);
-    }
-}

+ 0 - 23
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/DashDrawer.java

@@ -1,23 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Canvas;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/23.
- *   Description: Dash Indicator Drawer.
- * </pre>
- */
-public class DashDrawer extends RectDrawer {
-
-    DashDrawer(IndicatorOptions indicatorOptions) {
-        super(indicatorOptions);
-    }
-
-    @Override
-    protected void drawDash(Canvas canvas) {
-        canvas.drawRect(mRectF, mPaint);
-    }
-}

+ 0 - 27
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/DrawerFactory.java

@@ -1,27 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-import static com.zhpan.bannerview.constants.IndicatorStyle.DASH;
-import static com.zhpan.bannerview.constants.IndicatorStyle.ROUND_RECT;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/24.
- *   Description: Indicator Drawer Factory.
- * </pre>
- */
-class DrawerFactory {
-    static IDrawer createDrawer(IndicatorOptions indicatorOptions) {
-        IDrawer drawer;
-        int indicatorStyle = indicatorOptions.getIndicatorStyle();
-        if (indicatorStyle == DASH) {
-            drawer = new DashDrawer(indicatorOptions);
-        } else if (indicatorStyle == ROUND_RECT) {
-            drawer = new RoundRectDrawer(indicatorOptions);
-        } else {
-            drawer = new CircleDrawer(indicatorOptions);
-        }
-        return drawer;
-    }
-}

+ 0 - 46
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/DrawerProxy.java

@@ -1,46 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Canvas;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-import static com.zhpan.bannerview.constants.IndicatorStyle.CIRCLE;
-import static com.zhpan.bannerview.constants.IndicatorStyle.DASH;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/23.
- *   Description: Indicator Drawer Proxy.
- * </pre>
- */
-public class DrawerProxy implements IDrawer {
-
-    private IDrawer mIDrawer;
-
-    public DrawerProxy(IndicatorOptions indicatorOptions) {
-        init(indicatorOptions);
-    }
-
-    private void init(IndicatorOptions indicatorOptions) {
-        mIDrawer = DrawerFactory.createDrawer(indicatorOptions);
-    }
-
-    @Override
-    public void onLayout(boolean changed, int left, int top, int right, int bottom) {
-
-    }
-
-    @Override
-    public BaseDrawer.MeasureResult onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        return mIDrawer.onMeasure(widthMeasureSpec, heightMeasureSpec);
-    }
-
-    @Override
-    public void onDraw(Canvas canvas) {
-        mIDrawer.onDraw(canvas);
-    }
-
-    public void setIndicatorOptions(IndicatorOptions indicatorOptions) {
-        init(indicatorOptions);
-    }
-}

+ 0 - 20
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/IDrawer.java

@@ -1,20 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Canvas;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/23.
- *   Description:
- * </pre>
- */
-public interface IDrawer {
-
-    void onLayout(boolean changed, int left, int top, int right, int bottom);
-
-    BaseDrawer.MeasureResult onMeasure(int widthMeasureSpec, int heightMeasureSpec);
-
-    void onDraw(Canvas canvas);
-}

+ 0 - 108
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/RectDrawer.java

@@ -1,108 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Canvas;
-
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.manager.IndicatorOptions;
-import com.zhpan.bannerview.utils.BannerUtils;
-
-/**
- * <pre>
- *   Created by zhpan on 2020/1/17.
- *   Description:
- * </pre>
- */
-public class RectDrawer extends BaseDrawer {
-
-    RectDrawer(IndicatorOptions indicatorOptions) {
-        super(indicatorOptions);
-    }
-
-    @Override
-    public void onDraw(Canvas canvas) {
-        int pageSize = mIndicatorOptions.getPageSize();
-        if (pageSize > 1) {
-            if (isWidthEquals() && mIndicatorOptions.getSlideMode() != IndicatorSlideMode.NORMAL) {
-                drawUncheckedSlider(canvas, pageSize);
-                drawCheckedSlider(canvas);
-            } else {    // 单独处理normalWidth与checkedWidth不一致的情况
-                for (int i = 0; i < pageSize; i++) {
-                    drawInequalitySlider(canvas, i);
-                }
-            }
-        }
-    }
-
-    private void drawUncheckedSlider(Canvas canvas, int pageSize) {
-        for (int i = 0; i < pageSize; i++) {
-            mPaint.setColor(mIndicatorOptions.getNormalColor());
-            float sliderHeight = mIndicatorOptions.getSliderHeight();
-            float left = i * (maxWidth) + i * +mIndicatorOptions.getIndicatorGap() + (maxWidth - minWidth);
-            mRectF.set(left, 0, left + minWidth, sliderHeight);
-            drawRoundRect(canvas, sliderHeight, sliderHeight);
-        }
-    }
-
-    private void drawInequalitySlider(Canvas canvas, int i) {
-        int normalColor = mIndicatorOptions.getNormalColor();
-        float indicatorGap = mIndicatorOptions.getIndicatorGap();
-        float sliderHeight = mIndicatorOptions.getSliderHeight();
-        int currentPosition = mIndicatorOptions.getCurrentPosition();
-        if (i < currentPosition) {
-            mPaint.setColor(normalColor);
-            float left = i * minWidth + i * indicatorGap;
-            mRectF.set(left, 0, left + minWidth, sliderHeight);
-            drawRoundRect(canvas, sliderHeight, sliderHeight);
-        } else if (i == currentPosition) {
-            mPaint.setColor(mIndicatorOptions.getCheckedColor());
-            float left = i * minWidth + i * indicatorGap;
-            mRectF.set(left, 0, left + minWidth + (maxWidth - minWidth), sliderHeight);
-            drawRoundRect(canvas, sliderHeight, sliderHeight);
-        } else {
-            mPaint.setColor(normalColor);
-            float left = i * minWidth + i * indicatorGap + (maxWidth - minWidth);
-            mRectF.set(left, 0, left + minWidth, sliderHeight);
-            drawRoundRect(canvas, sliderHeight, sliderHeight);
-        }
-    }
-
-    private void drawCheckedSlider(Canvas canvas) {
-        mPaint.setColor(mIndicatorOptions.getCheckedColor());
-        switch (mIndicatorOptions.getSlideMode()) {
-            case IndicatorSlideMode.SMOOTH:
-                drawSmoothSlider(canvas);
-                break;
-            case IndicatorSlideMode.WORM:
-                drawWormSlider(canvas);
-                break;
-        }
-    }
-
-    private void drawWormSlider(Canvas canvas) {
-        float sliderHeight = mIndicatorOptions.getSliderHeight();
-        float slideProgress = mIndicatorOptions.getSlideProgress();
-        int currentPosition = mIndicatorOptions.getCurrentPosition();
-        float distance = mIndicatorOptions.getIndicatorGap() + mIndicatorOptions.getNormalIndicatorWidth();
-        float startCoordinateX = BannerUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition);
-        float left = startCoordinateX + Math.max(distance * (slideProgress - 0.5f) * 2.0f, 0) - mIndicatorOptions.getNormalIndicatorWidth() / 2;
-        float right = startCoordinateX + Math.min((distance * slideProgress * 2), distance) + mIndicatorOptions.getNormalIndicatorWidth() / 2;
-        mRectF.set(left, 0, right, sliderHeight);
-        drawRoundRect(canvas, sliderHeight, sliderHeight);
-    }
-
-    private void drawSmoothSlider(Canvas canvas) {
-        int currentPosition = mIndicatorOptions.getCurrentPosition();
-        float indicatorGap = mIndicatorOptions.getIndicatorGap();
-        float sliderHeight = mIndicatorOptions.getSliderHeight();
-        float left = currentPosition * (maxWidth) + currentPosition * +indicatorGap + (maxWidth + indicatorGap) * mIndicatorOptions.getSlideProgress();
-        mRectF.set(left, 0, left + maxWidth, sliderHeight);
-        drawRoundRect(canvas, sliderHeight, sliderHeight);
-    }
-
-    protected void drawRoundRect(Canvas canvas, float rx, float ry) {
-        drawDash(canvas);
-    }
-
-    protected void drawDash(Canvas canvas) {
-    }
-}

+ 0 - 23
bannerview/src/main/java/com/zhpan/bannerview/indicator/drawer/RoundRectDrawer.java

@@ -1,23 +0,0 @@
-package com.zhpan.bannerview.indicator.drawer;
-
-import android.graphics.Canvas;
-
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/26.
- *   Description:
- * </pre>
- */
-public class RoundRectDrawer extends RectDrawer {
-
-    RoundRectDrawer(IndicatorOptions indicatorOptions) {
-        super(indicatorOptions);
-    }
-
-    @Override
-    protected void drawRoundRect(Canvas canvas, float rx, float ry) {
-        canvas.drawRoundRect(mRectF, rx, ry, mPaint);
-    }
-}

+ 2 - 4
bannerview/src/main/java/com/zhpan/bannerview/manager/AttributeController.java

@@ -44,16 +44,14 @@ public class AttributeController {
         int indicatorStyle = typedArray.getInt(R.styleable.BannerViewPager_bvp_indicator_style, 0);
         int indicatorSlideMode = typedArray.getInt(R.styleable.BannerViewPager_bvp_indicator_slide_mode, 0);
         int indicatorVisibility = typedArray.getInt(R.styleable.BannerViewPager_bvp_indicator_visibility, 0);
-        mBannerOptions.setIndicatorCheckedColor(indicatorCheckedColor);
-        mBannerOptions.setIndicatorNormalColor(indicatorNormalColor);
-        mBannerOptions.setNormalIndicatorWidth(normalIndicatorWidth);
+        mBannerOptions.setIndicatorSliderColor(indicatorNormalColor,indicatorCheckedColor);
+        mBannerOptions.setIndicatorSliderWidth(normalIndicatorWidth,normalIndicatorWidth);
         mBannerOptions.setIndicatorGravity(indicatorGravity);
         mBannerOptions.setIndicatorStyle(indicatorStyle);
         mBannerOptions.setIndicatorSlideMode(indicatorSlideMode);
         mBannerOptions.setIndicatorVisibility(indicatorVisibility);
         mBannerOptions.setIndicatorGap(normalIndicatorWidth);
         mBannerOptions.setIndicatorHeight(normalIndicatorWidth / 2);
-        mBannerOptions.setCheckedIndicatorWidth(normalIndicatorWidth);
     }
 
     private void initBannerAttrs(TypedArray typedArray) {

+ 14 - 19
bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java

@@ -2,6 +2,7 @@ package com.zhpan.bannerview.manager;
 
 import com.zhpan.bannerview.constants.PageStyle;
 import com.zhpan.bannerview.utils.BannerUtils;
+import com.zhpan.indicator.option.IndicatorOptions;
 
 /**
  * <pre>
@@ -100,36 +101,30 @@ public class BannerOptions {
     }
 
     public int getIndicatorNormalColor() {
-        return mIndicatorOptions.getNormalColor();
-    }
-
-    public void setIndicatorNormalColor(int indicatorNormalColor) {
-        mIndicatorOptions.setNormalColor(indicatorNormalColor);
+        return mIndicatorOptions.getNormalSliderColor();
     }
 
     public int getIndicatorCheckedColor() {
-        return mIndicatorOptions.getCheckedColor();
-    }
-
-    public void setIndicatorCheckedColor(int indicatorCheckedColor) {
-        mIndicatorOptions.setCheckedColor(indicatorCheckedColor);
+        return mIndicatorOptions.getCheckedSliderColor();
     }
 
     public int getNormalIndicatorWidth() {
-        return (int) mIndicatorOptions.getNormalIndicatorWidth();
+        return (int) mIndicatorOptions.getNormalSliderWidth();
     }
 
-    public void setNormalIndicatorWidth(int normalIndicatorWidth) {
-        mIndicatorOptions.setNormalIndicatorWidth(normalIndicatorWidth);
+
+
+    public void setIndicatorSliderColor(int normalColor,int checkedColor){
+        mIndicatorOptions.setSliderColor(normalColor,checkedColor);
     }
 
+    public void setIndicatorSliderWidth(int normalWidth,int checkedWidth){
+        mIndicatorOptions.setSliderWidth(normalWidth,checkedWidth);
+    }
     public int getCheckedIndicatorWidth() {
-        return (int) mIndicatorOptions.getCheckedIndicatorWidth();
+        return (int) mIndicatorOptions.getCheckedSliderWidth();
     }
 
-    public void setCheckedIndicatorWidth(int checkedIndicatorWidth) {
-        mIndicatorOptions.setCheckedIndicatorWidth(checkedIndicatorWidth);
-    }
 
     public IndicatorOptions getIndicatorOptions() {
         return mIndicatorOptions;
@@ -168,11 +163,11 @@ public class BannerOptions {
     }
 
     public float getIndicatorGap() {
-        return mIndicatorOptions.getIndicatorGap();
+        return mIndicatorOptions.getSliderGap();
     }
 
     public void setIndicatorGap(float indicatorGap) {
-        mIndicatorOptions.setIndicatorGap(indicatorGap);
+        mIndicatorOptions.setSliderGap(indicatorGap);
     }
 
     public float getIndicatorHeight() {

+ 0 - 177
bannerview/src/main/java/com/zhpan/bannerview/manager/IndicatorOptions.java

@@ -1,177 +0,0 @@
-package com.zhpan.bannerview.manager;
-
-import android.graphics.Color;
-
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
-import com.zhpan.bannerview.utils.BannerUtils;
-
-/**
- * <pre>
- *   Created by zhpan on 2019/11/20.
- *   Description:Indicator的配置参数
- * </pre>
- */
-public class IndicatorOptions {
-
-    public IndicatorOptions() {
-        normalIndicatorWidth = BannerUtils.dp2px(8);
-        checkedIndicatorWidth = normalIndicatorWidth;
-        indicatorGap = normalIndicatorWidth;
-        normalColor = Color.parseColor("#8C18171C");
-        checkedColor = Color.parseColor("#8C6C6D72");
-        slideMode = IndicatorSlideMode.NORMAL;
-    }
-
-    private int mIndicatorStyle;
-
-    /**
-     * 页面size
-     */
-    private int pageSize;
-    /**
-     * 未选中时Indicator颜色
-     */
-    private int normalColor;
-    /**
-     * 选中时Indicator颜色
-     */
-    private int checkedColor;
-    /**
-     * Indicator间距
-     */
-    private float indicatorGap;
-    /**
-     * 从一个点滑动到另一个点的进度
-     */
-    private float slideProgress;
-    /**
-     * 指示器当前位置
-     */
-    private int currentPosition;
-//    /**
-//     * 指示器上一个位置
-//     */
-//    private int prePosition;
-//    /**
-//     * 是否是向右滑动,true向右,false向左
-//     */
-//    private boolean slideToRight;
-
-    private float sliderHeight;
-
-    /**
-     * Indicator滑动模式,目前仅支持两种
-     *
-     * @see IndicatorSlideMode#NORMAL
-     * @see IndicatorSlideMode#SMOOTH
-     */
-    private int slideMode;
-
-    private float normalIndicatorWidth;
-
-    private float checkedIndicatorWidth;
-
-    public int getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(int pageSize) {
-        this.pageSize = pageSize;
-    }
-
-    public int getNormalColor() {
-        return normalColor;
-    }
-
-    public void setNormalColor(int normalColor) {
-        this.normalColor = normalColor;
-    }
-
-    public int getCheckedColor() {
-        return checkedColor;
-    }
-
-    public void setCheckedColor(int checkedColor) {
-        this.checkedColor = checkedColor;
-    }
-
-    public float getIndicatorGap() {
-        return indicatorGap;
-    }
-
-    public void setIndicatorGap(float indicatorGap) {
-        this.indicatorGap = indicatorGap;
-    }
-
-    public float getSlideProgress() {
-        return slideProgress;
-    }
-
-    public void setSlideProgress(float slideProgress) {
-        this.slideProgress = slideProgress;
-    }
-
-    public int getCurrentPosition() {
-        return currentPosition;
-    }
-
-    public void setCurrentPosition(int currentPosition) {
-        this.currentPosition = currentPosition;
-    }
-
-//    public int getPrePosition() {
-//        return prePosition;
-//    }
-
-//    public void setPrePosition(int prePosition) {
-//        this.prePosition = prePosition;
-//    }
-
-//    public boolean isSlideToRight() {
-//        return slideToRight;
-//    }
-
-//    public void setSlideToRight(boolean slideToRight) {
-//        this.slideToRight = slideToRight;
-//    }
-
-    public int getSlideMode() {
-        return slideMode;
-    }
-
-    public void setSlideMode(int slideMode) {
-        this.slideMode = slideMode;
-    }
-
-    public float getNormalIndicatorWidth() {
-        return normalIndicatorWidth;
-    }
-
-    public void setNormalIndicatorWidth(float normalIndicatorWidth) {
-        this.normalIndicatorWidth = normalIndicatorWidth;
-    }
-
-    public float getCheckedIndicatorWidth() {
-        return checkedIndicatorWidth;
-    }
-
-    public void setCheckedIndicatorWidth(float checkedIndicatorWidth) {
-        this.checkedIndicatorWidth = checkedIndicatorWidth;
-    }
-
-    public float getSliderHeight() {
-        return sliderHeight > 0 ? sliderHeight : normalIndicatorWidth / 2;
-    }
-
-    public void setSliderHeight(float sliderHeight) {
-        this.sliderHeight = sliderHeight;
-    }
-
-    public int getIndicatorStyle() {
-        return mIndicatorStyle;
-    }
-
-    public void setIndicatorStyle(int indicatorStyle) {
-        mIndicatorStyle = indicatorStyle;
-    }
-}

+ 0 - 10
bannerview/src/main/java/com/zhpan/bannerview/utils/BannerUtils.java

@@ -3,8 +3,6 @@ package com.zhpan.bannerview.utils;
 import android.content.res.Resources;
 import android.util.Log;
 
-import com.zhpan.bannerview.manager.IndicatorOptions;
-
 /**
  * <pre>
  *   Created by zhangpan on 2019-08-14.
@@ -43,12 +41,4 @@ public class BannerUtils {
         return isCanLoop ? (position - 1 + pageSize) % pageSize : (position + pageSize) % pageSize;
     }
 
-    public static float getCoordinateX(IndicatorOptions indicatorOptions, float maxDiameter, int index) {
-        float normalIndicatorWidth = indicatorOptions.getNormalIndicatorWidth();
-        return maxDiameter / 2 + (normalIndicatorWidth + indicatorOptions.getIndicatorGap()) * index;
-    }
-
-    public static float getCoordinateY(float maxDiameter) {
-        return maxDiameter / 2;
-    }
 }

BIN=BIN
image/pay_alipay.jpg


BIN=BIN
image/pay_wechat.png


BIN=BIN
image/slide_circle_normal.gif


BIN=BIN
image/slide_circle_smooth.gif


BIN=BIN
image/slide_circle_worm.gif


BIN=BIN
image/style_dash_normal.gif


BIN=BIN
image/style_dash_smooth.gif


BIN=BIN
image/style_dash_worm.gif


BIN=BIN
image/style_round_rect_normal.gif


BIN=BIN
image/style_round_rect_smooth.gif


BIN=BIN
image/style_round_rect_worm.gif