张攀 5 سال پیش
والد
کامیت
16134c571c

BIN
.idea/caches/build_file_checksums.ser


BIN
.idea/caches/gradle_models.ser


+ 116 - 0
.idea/codeStyles/Project.xml

@@ -0,0 +1,116 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <codeStyleSettings language="XML">
+      <indentOptions>
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      </indentOptions>
+      <arrangement>
+        <rules>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:android</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:id</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>style</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>ANDROID_ATTRIBUTE_ORDER</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+        </rules>
+      </arrangement>
+    </codeStyleSettings>
+  </code_scheme>
+</component>

+ 6 - 0
.idea/encodings.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM">
+    <file url="PROJECT" charset="UTF-8" />
+  </component>
+</project>

+ 24 - 0
.idea/gradle.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <compositeConfiguration>
+          <compositeBuild compositeDefinitionSource="SCRIPT" />
+        </compositeConfiguration>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+            <option value="$PROJECT_DIR$/bannerview" />
+            <option value="$PROJECT_DIR$/ideahttp" />
+          </set>
+        </option>
+        <option name="resolveModulePerSourceSet" value="false" />
+        <option name="testRunner" value="PLATFORM" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>

+ 6 - 0
.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+</project>

+ 11 - 0
.idea/modules.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/BannerViewPager.iml" filepath="$PROJECT_DIR$/BannerViewPager.iml" />
+      <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
+      <module fileurl="file://$PROJECT_DIR$/bannerview/bannerview.iml" filepath="$PROJECT_DIR$/bannerview/bannerview.iml" />
+      <module fileurl="file://$PROJECT_DIR$/ideahttp/ideahttp.iml" filepath="$PROJECT_DIR$/ideahttp/ideahttp.iml" />
+    </modules>
+  </component>
+</project>

+ 12 - 0
.idea/runConfigurations.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 0 - 2
app/src/main/AndroidManifest.xml

@@ -12,9 +12,7 @@
         android:label="@string/app_name"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-        <activity android:name=".activity.BaseDataActivity"></activity>
         <activity android:name=".activity.PageStyleActivity" />
-        <activity android:name=".activity.CustomIndicatorActivity" />
         <activity android:name=".activity.IndicatorStyleActivity" />
         <activity android:name=".activity.PageTransformerActivity" />
         <activity android:name=".activity.NetworkBannerActivity" />

+ 0 - 59
app/src/main/java/com/example/zhpan/circleviewpager/activity/CustomIndicatorActivity.java

@@ -1,59 +0,0 @@
-package com.example.zhpan.circleviewpager.activity;
-
-import android.graphics.Color;
-import android.os.Bundle;
-
-import com.example.zhpan.circleviewpager.R;
-import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
-import com.zhpan.bannerview.BannerViewPager;
-import com.example.zhpan.circleviewpager.view.FigureIndicatorView;
-import com.zhpan.bannerview.constants.IndicatorGravity;
-import com.zhpan.bannerview.utils.DpUtils;
-import com.zhpan.idea.utils.ToastUtils;
-
-public class CustomIndicatorActivity extends BaseDataActivity {
-
-    private BannerViewPager<Integer, ImageResourceViewHolder> mBannerViewPager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_indicator_slide_mode);
-        setTitle(getString(R.string.custom_indicator_view));
-        setUpViewPager();
-    }
-
-    private void setUpViewPager() {
-        mBannerViewPager = findViewById(R.id.banner_view_dash);
-        mBannerViewPager.setAutoPlay(false).setCanLoop(true)
-                .setPageMargin(DpUtils.dp2px(20))
-                .setIndicatorGravity(IndicatorGravity.END)
-                .setIndicatorView(setupIndicatorView(mDrawableList.size()))
-                .setOnPageClickListener(position -> ToastUtils.show(position + ""))
-                .setHolderCreator(ImageResourceViewHolder::new).create(mDrawableList);
-    }
-
-    /**
-     * 这里可以是自定义的Indicator,需要继承BaseIndicatorView或者实现IIndicator接口;
-     */
-    private FigureIndicatorView setupIndicatorView(int pageSize) {
-        FigureIndicatorView indicatorView = new FigureIndicatorView(this);
-        indicatorView.setPageSize(pageSize);
-        indicatorView.setRadius(DpUtils.dp2px(18));
-        indicatorView.setTextSize(DpUtils.dp2px(13));
-        indicatorView.setBackgroundColor(Color.parseColor("#88FF5252"));
-        return indicatorView;
-    }
-
-    @Override
-    protected void onStop() {
-        super.onStop();
-        mBannerViewPager.stopLoop();
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        mBannerViewPager.startLoop();
-    }
-}

+ 67 - 44
app/src/main/java/com/example/zhpan/circleviewpager/activity/IndicatorStyleActivity.java

@@ -3,78 +3,101 @@ package com.example.zhpan.circleviewpager.activity;
 
 import android.graphics.Color;
 import android.os.Bundle;
+import android.view.View;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
 
 import com.example.zhpan.circleviewpager.R;
+import com.example.zhpan.circleviewpager.view.FigureIndicatorView;
 import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
 import com.zhpan.bannerview.BannerViewPager;
-import com.zhpan.bannerview.constants.IndicatorSlideMode;
+import com.zhpan.bannerview.constants.IndicatorGravity;
 import com.zhpan.bannerview.constants.IndicatorStyle;
 import com.zhpan.bannerview.utils.DpUtils;
+import com.zhpan.idea.utils.LogUtils;
+import com.zhpan.idea.utils.ToastUtils;
 
 public class IndicatorStyleActivity extends BaseDataActivity {
 
-    private BannerViewPager<Integer, ImageResourceViewHolder> mViewPagerSmoothSlide;
-
-    private BannerViewPager<Integer, ImageResourceViewHolder> mViewPagerNormalSlide;
-
-    private BannerViewPager<Integer, ImageResourceViewHolder> mViewPagerDash;
+    private BannerViewPager<Integer, ImageResourceViewHolder> mViewPager;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_indicator_slide_mode);
         setTitle(getString(R.string.indicator_style));
-        initCircleNormalSlide();
-        initCircleSmoothSlide();
-        initDashIndicator();
+        mViewPager = findViewById(R.id.banner_view_dash);
+        mViewPager.setRoundCorner(DpUtils.dp2px(5))
+                .setIndicatorGap(DpUtils.dp2px(6))
+                .setHolderCreator(ImageResourceViewHolder::new);
+        initRadioGroup();
+    }
+
+    private void initRadioGroup() {
+        RadioGroup radioGroupStyle = findViewById(R.id.rg_indicator_style);
+        radioGroupStyle.setVisibility(View.VISIBLE);
+        radioGroupStyle.setVisibility(View.VISIBLE);
+        radioGroupStyle.setOnCheckedChangeListener((group, checkedId) -> {
+            LogUtils.e("LLL", "check" + checkedId);
+            switch (checkedId) {
+                case R.id.rb_circle:
+                    mViewPager.resetIndicator();
+                    setupCircleIndicator();
+                    break;
+                case R.id.rb_dash:
+                    mViewPager.resetIndicator();
+                    setupDashIndicator();
+                    break;
+                case R.id.rb_custom:
+                    setupCustomIndicator();
+                    break;
+            }
+        });
+        RadioButton radioButton = findViewById(R.id.rb_circle);
+        radioButton.performClick();
     }
 
-    private void initDashIndicator() {
-        mViewPagerDash = findViewById(R.id.banner_view_dash);
-        mViewPagerDash.setAutoPlay(true).setCanLoop(true)
-                .setIndicatorGap(DpUtils.dp2px(5))
-                .setScrollDuration(1000).setPageMargin(DpUtils.dp2px(20))
+    private void setupCircleIndicator() {
+        mViewPager.setIndicatorStyle(IndicatorStyle.CIRCLE)
+                .setIndicatorGravity(IndicatorGravity.CENTER)
+                .setIndicatorColor(Color.parseColor("#935656"), Color.parseColor("#FF4C39"))
+                .setIndicatorRadius(DpUtils.dp2px(4), DpUtils.dp2px(5)).create(mDrawableList);
+    }
+
+    private void setupDashIndicator() {
+        mViewPager.setIndicatorStyle(IndicatorStyle.DASH)
                 .setIndicatorHeight(DpUtils.dp2px(2.5f))
-                .setIndicatorStyle(IndicatorStyle.DASH)
-                .setIndicatorWidth(DpUtils.dp2px(10), DpUtils.dp2px(5))
-                .setHolderCreator(ImageResourceViewHolder::new)
+                .setIndicatorGravity(IndicatorGravity.CENTER)
+                .setIndicatorWidth(DpUtils.dp2px(6), DpUtils.dp2px(12))
                 .setIndicatorColor(Color.parseColor("#888888"),
                         Color.parseColor("#118EEA")).create(mDrawableList);
     }
 
-    private void initCircleSmoothSlide() {
-        mViewPagerSmoothSlide = findViewById(R.id.banner_view);
-        mViewPagerSmoothSlide.setAutoPlay(true).setCanLoop(true)
-                .setRoundCorner(DpUtils.dp2px(5))
-                .setIndicatorGap(DpUtils.dp2px(7))
-                .setScrollDuration(1000)
-                .setIndicatorStyle(IndicatorStyle.CIRCLE)
-                .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
-                .setIndicatorRadius(DpUtils.dp2px(6), DpUtils.dp2px(7))
-                .setHolderCreator(ImageResourceViewHolder::new)
-                .setIndicatorColor(Color.parseColor("#935656"),
-                        Color.parseColor("#CCFF4C39")).create(mDrawableList);
+    private void setupCustomIndicator() {
+        mViewPager = findViewById(R.id.banner_view_dash);
+        mViewPager.setAutoPlay(false).setCanLoop(true)
+                .setPageMargin(DpUtils.dp2px(20))
+                .setIndicatorGravity(IndicatorGravity.END)
+                .setIndicatorView(setupIndicatorView(mDrawableList.size()))
+                .setOnPageClickListener(position -> ToastUtils.show(position + ""))
+                .setHolderCreator(ImageResourceViewHolder::new).create(mDrawableList);
     }
 
-    private void initCircleNormalSlide() {
-        mViewPagerNormalSlide = findViewById(R.id.banner_view_normal_slide);
-        mViewPagerNormalSlide.setAutoPlay(true).setCanLoop(true)
-                .setRoundCorner(DpUtils.dp2px(5))
-                .setIndicatorGap(DpUtils.dp2px(7))
-                .setScrollDuration(1000)
-                .setIndicatorStyle(IndicatorStyle.CIRCLE)
-                .setIndicatorWidth(DpUtils.dp2px(8))
-                .setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
-                .setHolderCreator(ImageResourceViewHolder::new)
-                .setIndicatorColor(Color.parseColor("#888888"),
-                        Color.parseColor("#118EEA")).create(mDrawableList);
+    /**
+     * 这里可以是自定义的Indicator,需要继承BaseIndicatorView或者实现IIndicator接口;
+     */
+    private FigureIndicatorView setupIndicatorView(int pageSize) {
+        FigureIndicatorView indicatorView = new FigureIndicatorView(this);
+        indicatorView.setPageSize(pageSize);
+        indicatorView.setRadius(DpUtils.dp2px(18));
+        indicatorView.setTextSize(DpUtils.dp2px(13));
+        indicatorView.setBackgroundColor(Color.parseColor("#88FF5252"));
+        return indicatorView;
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        mViewPagerSmoothSlide.stopLoop();
-        mViewPagerNormalSlide.stopLoop();
-        mViewPagerDash.stopLoop();
+        mViewPager.stopLoop();
     }
 }

+ 0 - 3
app/src/main/java/com/example/zhpan/circleviewpager/activity/MainActivity.java

@@ -24,9 +24,6 @@ public class MainActivity extends AppCompatActivity {
             case R.id.tv_page_style:
                 intent = new Intent(this, PageStyleActivity.class);
                 break;
-            case R.id.btn_custom_indicator:
-                intent = new Intent(this, CustomIndicatorActivity.class);
-                break;
             case R.id.btn_view_pager3:
                 intent = new Intent(this, PhotoViewActivity.class);
                 break;

+ 30 - 11
app/src/main/res/layout/activity_indicator_slide_mode.xml

@@ -8,21 +8,40 @@
 
     <com.zhpan.bannerview.BannerViewPager
         android:id="@+id/banner_view_dash"
-        android:layout_margin="10dp"
         android:layout_width="match_parent"
-        android:layout_height="150dp"/>
+        android:layout_height="150dp"
+        android:layout_margin="10dp" />
 
-    <com.zhpan.bannerview.BannerViewPager
-        android:id="@+id/banner_view_normal_slide"
-        android:layout_margin="10dp"
+    <RadioGroup
+        android:id="@+id/rg_indicator_style"
         android:layout_width="match_parent"
-        android:layout_height="150dp"/>
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="15dp"
+        android:visibility="gone">
 
-    <com.zhpan.bannerview.BannerViewPager
-        android:id="@+id/banner_view"
-        android:layout_margin="10dp"
-        android:layout_width="match_parent"
-        android:layout_height="150dp"/>
+        <RadioButton
+            android:id="@+id/rb_circle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="15dp"
+            android:text="Circle"
+            android:textSize="16sp" />
+
+        <RadioButton
+            android:id="@+id/rb_dash"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="15dp"
+            android:text="Dash"
+            android:textSize="16sp" />
 
+        <RadioButton
+            android:id="@+id/rb_custom"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Custom"
+            android:textSize="16sp" />
+    </RadioGroup>
 
 </LinearLayout>

+ 0 - 13
app/src/main/res/layout/activity_main.xml

@@ -29,19 +29,6 @@
         android:layout_height="1dp"
         android:background="#dddddd" />
 
-    <TextView
-        android:id="@+id/btn_custom_indicator"
-        android:layout_width="match_parent"
-        android:layout_height="50dp"
-        android:gravity="center"
-        android:onClick="onClick"
-        android:text="@string/custom_indicator_view" />
-
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="#dddddd" />
-
     <TextView
         android:id="@+id/btn_view_pager4"
         android:layout_width="match_parent"

+ 9 - 0
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -727,6 +727,15 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         return mViewPager;
     }
 
+    /**
+     * 仅供demo使用
+     */
+    @Deprecated
+    public void resetIndicator() {
+        isCustomIndicator = false;
+        mIndicatorView = null;
+    }
+
     /**
      * 页面点击事件接口
      */

+ 0 - 1
bannerview/src/main/java/com/zhpan/bannerview/adapter/BannerPagerAdapter.java

@@ -115,7 +115,6 @@ public class BannerPagerAdapter<T, VH extends ViewHolder> extends PagerAdapter {
     @Override
     public void finishUpdate(@NonNull ViewGroup container) {
         super.finishUpdate(container);
-
     }
 
     public void setPageClickListener(PageClickListener pageClickListener) {

+ 0 - 0
git


BIN
image/style_circle.gif


BIN
image/style_custum.gif


BIN
image/style_dash.gif