Browse Source

update gradle version to 5.4.1

张攀 5 năm trước cách đây
mục cha
commit
25bc0350b3

+ 24 - 8
app/src/main/java/com/example/zhpan/circleviewpager/activity/PageTransformerActivity.java

@@ -1,8 +1,8 @@
 package com.example.zhpan.circleviewpager.activity;
 
-import androidx.viewpager.widget.ViewPager;
 import androidx.appcompat.app.AppCompatActivity;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.widget.Toast;
@@ -16,6 +16,7 @@ import java.util.ArrayList;
 
 public class PageTransformerActivity extends AppCompatActivity {
 
+    private static final String TAG = "PageTransformerActivity";
     private BannerViewPager<Integer, TransformerViewHolder> mViewpager;
     private ArrayList<Integer> mList = new ArrayList<>();
 
@@ -36,7 +37,6 @@ public class PageTransformerActivity extends AppCompatActivity {
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        ViewPager.PageTransformer pageTransformer = null;
         switch (item.getItemId()) {
             case R.id.menu0:
                 mViewpager.setPageTransformerStyle(TransformerStyle.STACK);
@@ -51,8 +51,6 @@ public class PageTransformerActivity extends AppCompatActivity {
                 mViewpager.setPageTransformerStyle(TransformerStyle.ACCORDION);
                 break;
         }
-        if (pageTransformer != null)
-            mViewpager.setPageTransformer(pageTransformer);
         return super.onOptionsItemSelected(item);
     }
 
@@ -63,10 +61,28 @@ public class PageTransformerActivity extends AppCompatActivity {
                 .setAutoPlay(false)
                 .setScrollDuration(1000)
                 .setData(mList)
-                .setHolderCreator(TransformerViewHolder::new)
-                .setOnPageClickListener(position -> Toast.makeText(PageTransformerActivity.this,
-                        "立即体验", Toast.LENGTH_SHORT).show())
-                .create();
+                .setHolderCreator(() -> {
+                    TransformerViewHolder transformerViewHolder = new TransformerViewHolder();
+                    transformerViewHolder.setSubViewClickListener(view -> Toast.makeText(PageTransformerActivity.this,
+                            "立即体验", Toast.LENGTH_SHORT).show());
+                    return transformerViewHolder;
+                }).create();
+//        mViewpager.setOnPageChangedListener(new BannerViewPager.OnPageChangedListener() {
+//            @Override
+//            public void onPageSelected(int position) {
+//                Log.e(TAG,"onPageSelected------------------------------->"+position);
+//            }
+//
+//            @Override
+//            public void onPageScrollStateChanged(int state) {
+//                Log.e(TAG,"onPageScrollStateChanged--------->"+state);
+//            }
+//
+//            @Override
+//            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+//                Log.e(TAG,"onPageScrolled------------------>"+position);
+//            }
+//        });
     }
 
 

+ 24 - 0
app/src/main/java/com/example/zhpan/circleviewpager/viewholder/TransformerViewHolder.java

@@ -1,10 +1,13 @@
 package com.example.zhpan.circleviewpager.viewholder;
 
+import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Button;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.example.zhpan.circleviewpager.R;
 import com.example.zhpan.circleviewpager.bean.DataBean;
@@ -19,17 +22,38 @@ import com.zhpan.bannerview.holder.ViewHolder;
 
 public class TransformerViewHolder implements ViewHolder<Integer> {
     private ImageView mImageView;
+    private SubViewClickListener mSubViewClickListener;
+    private TextView mTextView;
 
     @Override
     public View createView(ViewGroup viewGroup, Context context, int position) {
         // 返回页面布局文件
         View view = LayoutInflater.from(context).inflate(R.layout.item_view, viewGroup, false);
         mImageView = view.findViewById(R.id.banner_image);
+        mTextView = view.findViewById(R.id.btn_start);
+        mTextView.setOnClickListener(v -> {
+            if (mSubViewClickListener != null) {
+                mSubViewClickListener.onViewClick(v);
+            }
+        });
         return view;
     }
 
     @Override
     public void onBind(final Context context, Integer data, final int position, final int size) {
         mImageView.setImageResource(data);
+        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mTextView, "alpha", 0, 1);
+        objectAnimator.setDuration(1500);
+        objectAnimator.start();
+        mTextView.setVisibility(View.VISIBLE);
     }
+
+    public void setSubViewClickListener(SubViewClickListener subViewClickListener) {
+        mSubViewClickListener = subViewClickListener;
+    }
+
+    public interface SubViewClickListener {
+        void onViewClick(View view);
+    }
+
 }

BIN
app/src/main/res/drawable-xxxhdpi/guide0.jpg


BIN
app/src/main/res/drawable-xxxhdpi/guide1.jpg


BIN
app/src/main/res/drawable-xxxhdpi/guide2.jpg


+ 24 - 0
app/src/main/res/drawable/bg_start.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+<!-- 实心 -->
+<solid android:color="#e35d5e" />
+<!-- 边框 -->
+<!--<stroke
+    android:width="0.5dp"
+    android:color="#e35d5e" />-->
+<!-- 圆角 -->
+<corners android:radius="5dp" />
+<!-- 边距 -->
+<padding
+    android:bottom="0dp"
+    android:left="10dp"
+    android:right="10dp"
+    android:top="0dp" />
+<!-- 渐变 -->
+<!--<gradient
+    android:angle="270"
+    android:endColor="#FFFF782"
+    android:startColor="#13C7AF" />-->
+
+</shape>

+ 17 - 1
app/src/main/res/layout/item_view.xml

@@ -7,5 +7,21 @@
         android:id="@+id/banner_image"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:scaleType="fitXY" />
+        android:scaleType="fitXY"
+        android:contentDescription="@string/guide"
+        android:src="@drawable/guide0" />
+
+    <TextView
+        android:id="@+id/btn_start"
+        android:layout_width="wrap_content"
+        android:layout_height="35dp"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="20dp"
+        android:background="@drawable/bg_start"
+        android:gravity="center_vertical"
+        android:text="@string/start_now"
+        android:textColor="#FFFFFF"
+        android:textSize="16sp" />
+
 </RelativeLayout>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -5,4 +5,6 @@
     <string name="title_view_pager">圆角自动轮播</string>
     <string name="load_data">嵌套RecyclerView</string>
     <string name="title_transformer">Page Transformer</string>
+    <string name="start_now">立即体验</string>
+    <string name="guide">guide</string>
 </resources>

+ 1 - 1
bannerview/build.gradle

@@ -99,7 +99,7 @@ bintray {
     configurations = ['archives']
     pkg {
         repo = "CircleViewPager"  //发布到Bintray的那个仓库里,默认账户有四个库,我们这里上传到maven库
-        name = "bannerview"  //发布到Bintray上的项目名字
+        name = "bannerviewX"  //发布到Bintray上的项目名字
         websiteUrl = siteUrl
         vcsUrl = gitUrl
         licenses = ["Apache-2.0"]

+ 28 - 5
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -6,10 +6,12 @@ import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.os.Build;
 import android.os.Handler;
+
 import androidx.annotation.ColorInt;
 import androidx.annotation.DimenRes;
 import androidx.annotation.IntDef;
 import androidx.viewpager.widget.ViewPager;
+
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -95,6 +97,8 @@ public class BannerViewPager<T, VH extends ViewHolder> extends FrameLayout imple
 
     private float indicatorMargin = 0;
 
+//    private OnPageChangedListener mOnPageChangedListener;
+
     public BannerViewPager(Context context) {
         this(context, null);
     }
@@ -139,10 +143,8 @@ public class BannerViewPager<T, VH extends ViewHolder> extends FrameLayout imple
             mScroller = new BannerScroller(mViewPager.getContext());
             mScroller.setDuration(DEFAULT_SCROLL_DURATION);
             Field mField = ViewPager.class.getDeclaredField("mScroller");
-            if (null != mField) {
-                mField.setAccessible(true);
-                mField.set(mViewPager, mScroller);
-            }
+            mField.setAccessible(true);
+            mField.set(mViewPager, mScroller);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -229,12 +231,18 @@ public class BannerViewPager<T, VH extends ViewHolder> extends FrameLayout imple
 
     @Override
     public void onPageSelected(int position) {
+//        if (null != mOnPageChangedListener) {
+//            mOnPageChangedListener.onPageSelected(getRealPosition(position));
+//        }
         currentPosition = position;
         mIndicatorView.pageSelect(getRealPosition(position));
     }
 
     @Override
     public void onPageScrollStateChanged(int state) {
+//        if (null != mOnPageChangedListener) {
+//            mOnPageChangedListener.onPageScrollStateChanged(state);
+//        }
         if (isCanLoop) {
             switch (state) {
                 case ViewPager.SCROLL_STATE_IDLE:
@@ -259,7 +267,9 @@ public class BannerViewPager<T, VH extends ViewHolder> extends FrameLayout imple
 
     @Override
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
+//        if (null != mOnPageChangedListener) {
+//            mOnPageChangedListener.onPageScrolled(position, positionOffset, positionOffsetPixels);
+//        }
     }
 
     private int getRealPosition(int position) {
@@ -517,4 +527,17 @@ public class BannerViewPager<T, VH extends ViewHolder> extends FrameLayout imple
     @Target(ElementType.PARAMETER)
     @interface IndicatorGravity {
     }
+
+//    public void setOnPageChangedListener(OnPageChangedListener mOnPageChangedListener) {
+//        this.mOnPageChangedListener = mOnPageChangedListener;
+//    }
+//
+//    public interface OnPageChangedListener {
+//        void onPageSelected(int position);
+//
+//        void onPageScrollStateChanged(int state);
+//
+//        void onPageScrolled(int position, float positionOffset, int positionOffsetPixels);
+//
+//    }
 }

+ 1 - 1
build.gradle

@@ -9,7 +9,7 @@ buildscript {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.4.2'
+        classpath 'com.android.tools.build:gradle:3.5.0'
         classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
         classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
         // NOTE: Do not place your application dependencies here; they belong

+ 1 - 1
gradle/wrapper/gradle-wrapper.properties

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip