Browse Source

Optimize code

zhangpan 5 years ago
parent
commit
4d66a65735

+ 10 - 4
README.md

@@ -8,27 +8,33 @@
 |--|--|--|
 | ![嵌套RecyclerView](https://github.com/zhpanvip/BannerViewPager/blob/master/image/preview1.gif) | ![自定义页面](https://github.com/zhpanvip/BannerViewPager/blob/master/image/preview2.gif) | ![嵌套PhotoView](https://github.com/zhpanvip/BannerViewPager/blob/master/image/preview3.gif)   |
 
-## 2.页面滑动样式--支持一屏多页
+## 2.setPageStyle--支持一屏多页
+
+[一屏多页Demo](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/activity/PageStyleActivity.java)
 
 | MULTI_PAGE |
 |--|
 | ![MULTI_PAGE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/page_style_multi.gif) |
 
-## 3.设置IndicatorViewStyle
+## 3.setIndicatorViewStyle
 BannerViewPager支持多种IndicatorViewStyle,同时还提供了完全自定义IndicatorView的功能。只要继承BaseIndicatorView或者实现IIndicator接口,并重写相应方法,就可以为所欲为的打造任意的Indicator了。
 
+[IndicatorViewStyle Demo](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/activity/IndicatorStyleActivity.java)
+
 | CIRCLE | DASH | 自定义 |
 |--|--|--|
 | ![CIRCLE](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_circle.gif) | ![DASH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_dash.gif) | ![NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/style_custum.gif) |
 
-## 4.设置IndicatorSlideMode
+## 4.setIndicatorSlideMode
 
 | NORMAL | SMOOTH |
 |--|--|
 | ![NORMAL](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_normal.gif) |  ![SMOOTH](https://github.com/zhpanvip/BannerViewPager/blob/master/image/slide_smooth.gif) |
 
 
-## 5.内置Transform样式
+## 5.setPageTransformerStyle
+
+[TransformStyle Demo](https://github.com/zhpanvip/BannerViewPager/blob/master/app/src/main/java/com/example/zhpan/circleviewpager/activity/PageTransformerActivity.java)
 
 | 参数 | STACK | ROTATE | DEPTH | ACCORDION |
 |--|--|--|--|--|

+ 2 - 4
app/src/main/java/com/example/zhpan/circleviewpager/activity/MainActivity.java

@@ -27,17 +27,15 @@ public class MainActivity extends AppCompatActivity {
             case R.id.btn_view_pager3:
                 intent = new Intent(this, PhotoViewActivity.class);
                 break;
-            case R.id.btn_view_pager4:
-                intent = new Intent(this, NetworkBannerActivity.class);
-                break;
             case R.id.btn_view_pager5:
                 intent = new Intent(this, PageTransformerActivity.class);
                 break;
             case R.id.btn_indicator_style:
                 intent = new Intent(this, IndicatorStyleActivity.class);
                 break;
+            case R.id.btn_view_pager4:
             default:
-                intent = new Intent(this, CustomerBannerPageActivity.class);
+                intent = new Intent(this, NetworkBannerActivity.class);
                 break;
         }
         startActivity(intent);

+ 1 - 0
app/src/main/java/com/example/zhpan/circleviewpager/activity/PageStyleActivity.java

@@ -25,6 +25,7 @@ public class PageStyleActivity extends BaseDataActivity {
         mBannerViewPager
                 .setPageMargin(DpUtils.dp2px(20))
                 .setRevealWidth(DpUtils.dp2px(20))
+                .setInterval(3000)
                 .setPageStyle(PageStyle.MULTI_PAGE)
                 .setHolderCreator(() -> new ImageResourceViewHolder(DpUtils.dp2px(5)))
                 .setIndicatorColor(Color.parseColor("#935656"), Color.parseColor("#FF4C39"))

+ 7 - 25
app/src/main/res/layout/activity_main.xml

@@ -12,10 +12,7 @@
         android:gravity="center"
         android:onClick="onClick"
         android:text="@string/page_style" />
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
+    <include layout="@layout/item_line" />
     <TextView
         android:id="@+id/btn_indicator_style"
         android:layout_width="match_parent"
@@ -24,10 +21,7 @@
         android:onClick="onClick"
         android:text="@string/indicator_style" />
 
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
+    <include layout="@layout/item_line" />
 
     <TextView
         android:id="@+id/btn_view_pager4"
@@ -37,11 +31,8 @@
         android:onClick="onClick"
         android:text="@string/load_data" />
 
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
-
+    <include layout="@layout/item_line" />
+<!--
     <TextView
         android:id="@+id/btn_view_pager2"
         android:layout_width="match_parent"
@@ -50,10 +41,7 @@
         android:onClick="onClick"
         android:text="@string/title_custom_page" />
 
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
+    <include layout="@layout/item_line" />-->
 
     <TextView
         android:id="@+id/btn_view_pager3"
@@ -63,10 +51,7 @@
         android:onClick="onClick"
         android:text="@string/wrapper_photo_view" />
 
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
+    <include layout="@layout/item_line" />
 
     <TextView
         android:id="@+id/btn_view_pager5"
@@ -76,8 +61,5 @@
         android:onClick="onClick"
         android:text="@string/title_transformer" />
 
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
+    <include layout="@layout/item_line" />
 </LinearLayout>

+ 5 - 0
app/src/main/res/layout/item_line.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="0.5dp"
+    android:background="#dddddd" />

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -12,5 +12,5 @@
     <string name="normal">NORMAL</string>
     <string name="smooth">SMOOTH</string>
     <string name="custom_indicator_view">自定义IndicatorView</string>
-    <string name="page_style">页面样式</string>
+    <string name="page_style">一屏多页</string>
 </resources>

+ 20 - 31
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -52,7 +52,7 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         ViewPager.OnPageChangeListener {
 
     private ViewPager mViewPager;
-    // 轮播数据集合
+
     private List<T> mList;
     // 页面切换时间间隔
     private int interval;
@@ -66,7 +66,7 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     private boolean isAutoPlay = false;
     // 是否显示指示器
     private boolean showIndicator = true;
-
+    // Indicator gravity
     private int gravity;
     // 未选中时指示器颜色
     private int indicatorNormalColor;
@@ -76,38 +76,31 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     private int normalIndicatorWidth;
     // 选中时指示宽度/直径
     private int checkedIndicatorWidth;
-
     // 页面点击事件监听
     private OnPageClickListener mOnPageClickListener;
     // 轮播指示器
     private IIndicator mIndicatorView;
     //  存放IndicatorView的容器
     private RelativeLayout mRelativeLayout;
-
-    /**
-     * 一屏多页page的间距
-     */
+    //  Item 间隔
     private int mPageMargin;
-    /**
-     * 一屏多页,显露其它page的width
-     */
+    // 一屏多页时,显露其它page的width
     private int mRevealWidth;
-
-    /**
-     * 指示器Style样式
-     *
-     * @see IndicatorStyle#CIRCLE 圆形指示器
-     * @see IndicatorStyle#DASH  虚线指示器
-     */
+    // 指示器Style样式
     private int mIndicatorStyle;
-
-    private HolderCreator<VH> holderCreator;
     // IndicatorView的滑动模式
     private int mIndicatorSlideMode;
 
-    Handler mHandler = new Handler();
+    private HolderCreator<VH> holderCreator;
+    private BannerScroller mScroller;
+    private int indicatorGap;
+    private int indicatorHeight;
+    private boolean isCustomIndicator;
+    private int mPageStyle = PageStyle.NORMAL;
+
+    private Handler mHandler = new Handler();
 
-    Runnable mRunnable = new Runnable() {
+    private Runnable mRunnable = new Runnable() {
         @Override
         public void run() {
             if (mList.size() > 1) {
@@ -122,14 +115,9 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
             }
         }
     };
-    private BannerScroller mScroller;
 
     public static final int DEFAULT_SCROLL_DURATION = 800;
 
-    private int indicatorGap;
-    private int indicatorHeight;
-    private boolean isCustomIndicator;
-    private int mPageStyle = PageStyle.NORMAL;
 //    private OnPageSelectedListener mOnPageSelectedListener;
 
     public BannerViewPager(Context context) {
@@ -599,7 +587,6 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         return this;
     }
 
-
     /**
      * @param showIndicator 是否显示轮播指示器
      */
@@ -679,7 +666,7 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     }
 
     /**
-     * @return 获取当前真实position
+     * @return the currently selected page position.
      */
     public int getCurrentItem() {
         return getRealPosition(currentPosition);
@@ -707,7 +694,9 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     }
 
     /**
-     * 设置Banner页面样式
+     * Set Page Style for Banner
+     * {@link PageStyle#NORMAL}
+     * {@link PageStyle#MULTI_PAGE}
      *
      * @return BannerViewPager
      */
@@ -717,8 +706,8 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     }
 
     private void setMultiPageStyle() {
-        mPageMargin=mPageMargin==0?DpUtils.dp2px(20):mPageMargin;
-        mRevealWidth=mRevealWidth==0?DpUtils.dp2px(20):mRevealWidth;
+        mPageMargin = mPageMargin == 0 ? DpUtils.dp2px(20) : mPageMargin;
+        mRevealWidth = mRevealWidth == 0 ? DpUtils.dp2px(20) : mRevealWidth;
         setClipChildren(false);
         RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mViewPager.getLayoutParams();
         params.leftMargin = mPageMargin + mRevealWidth;