Pārlūkot izejas kodu

提交1.0.5版本

yanyi 3 gadi atpakaļ
vecāks
revīzija
348ce4a7be

+ 38 - 5
README.md

@@ -1,14 +1,17 @@
 # ImageGrid
 
-![](https://img.shields.io/badge/ImageGrid-1.0.4-green)
+![](https://img.shields.io/badge/ImageGrid-1.0.5-green)
 
 介绍
 ---
-##### 旨在将简单化九宫格样式的图片展示方式
+
+##### 旨在将简单化九宫格样式的图片动态添加删除方式,也可作为常规九宫格展示图片使用
 
 使用
 ---
+
 ### 根目录下build.gradle添加Maven地址
+
 ~~~
 repositories {
         maven {
@@ -16,22 +19,26 @@ repositories {
         }
     }
 ~~~
+
 ### module 下添加
+
 ~~~
-implementation 'com.yanyi.benyanyi:ImageGrid:1.0.4'
+implementation 'com.yanyi.benyanyi:ImageGrid:version'
 ~~~
 
 或者
+
 ~~~
 <dependency>
   <groupId>com.yanyi.benyanyi</groupId>
   <artifactId>ImageGrid</artifactId>
-  <version>1.0.4</version>
+  <version>version</version>
   <type>aar</type>
 </dependency>
 ~~~
 
 #### xml配置说明
+
 * ir_max_show 列表最大长度
 * ir_is_add 是否需要添加图片操作
 * ir_add_res 添加图片图标
@@ -46,13 +53,39 @@ implementation 'com.yanyi.benyanyi:ImageGrid:1.0.4'
 * ir_item_radius 图片圆角
 
 #### java参数说明
+
 * replaceData 设置数据
 * addData 添加数据
-* remove 删除数据
+* remove(int position) 删除指定下标数据
+* getData 获取全部数据
 
+#### 接口说明
+
+##### setOnAddImgClick 点击添加图片方法
+
+~~~ 
+.setOnAddImgClick(new ImageRecycler.OnAddImgClick() {
+            @Override
+            public void onAddImgClick() {
+            }
+        })
+~~~
+
+##### setOnRemoveClick 点击删除图标删除图片方法
+
+~~~
+.setOnRemoveClick(new ImageRecycler.OnRemoveClick() {
+            @Override
+            public void onRemoveClick(int position) {
+                Log.d("当前删除的下标为:", position + "");
+            }
+        });
+~~~
 
 更新记录
 ----
+
+* 2022-05-20 提交1.0.5版本,修复添加到了最大数量时底部留白问题
 * 2021-10-09 提交1.0.4版本,完善参数
 * 2021-10-01 提交1.0.1版本,第一次更新
 

+ 6 - 1
app/src/main/java/com/mylove/imagegrid/MainActivity.java

@@ -4,7 +4,6 @@ import android.os.Bundle;
 import android.util.Log;
 
 import androidx.appcompat.app.AppCompatActivity;
-import androidx.recyclerview.widget.GridLayoutManager;
 
 import com.benyanyi.image_grid_lib.ImageRecycler;
 
@@ -23,5 +22,11 @@ public class MainActivity extends AppCompatActivity {
                 recycler.addData("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic38.nipic.com%2F20140226%2F18049074_195317304156_2.jpg&refer=http%3A%2F%2Fpic38.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1635757680&t=1b5448e37e37590016b8b07c1a6a1962");
             }
         });
+        recycler.setOnRemoveClick(new ImageRecycler.OnRemoveClick() {
+            @Override
+            public void onRemoveClick(int position) {
+                Log.d("当前删除的下标为:", position + "");
+            }
+        });
     }
 }

+ 0 - 2
image_grid_lib/src/main/java/com/benyanyi/image_grid_lib/ImageRecycler.java

@@ -4,7 +4,6 @@ import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
-import android.util.Log;
 
 import androidx.annotation.IntRange;
 import androidx.annotation.NonNull;
@@ -71,7 +70,6 @@ public class ImageRecycler extends RecyclerView {
         this.mSingleLineSize = ta.getInt(R.styleable.ImageRecycler_ir_single_line_size, 3);
         this.mItemPadding = ta.getDimensionPixelSize(R.styleable.ImageRecycler_ir_item_padding, 0);
         this.mItemRadius = ta.getDimensionPixelSize(R.styleable.ImageRecycler_ir_item_radius, 0);
-        Log.v("圆角", this.mItemRadius + "");
         this.mAdapter = new ImagerAdapter(mMaxLength, isAdd, mMinShowSize, mShowDelete, mDeletePadding, mGravity, mItemRadius);
         GridLayoutManager layoutManager = new GridLayoutManager(this.getContext(), this.mSingleLineSize);
         setLayoutManager(layoutManager);

+ 29 - 9
image_grid_lib/src/main/java/com/benyanyi/image_grid_lib/ImagerAdapter.java

@@ -4,6 +4,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 
 import androidx.annotation.IntRange;
@@ -97,11 +98,9 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
                 ImageDetailsActivity.start(holder.itemView.getContext(), mData, position);
             });
         } else if (holder instanceof FooterViewHolder) {
-            if (position >= mMaxLength) {
-                holder.itemView.setVisibility(View.GONE);
-            } else {
-                holder.itemView.setVisibility(View.VISIBLE);
-            }
+            //                holder.itemView.setVisibility(View.GONE);
+            //                holder.itemView.setVisibility(View.VISIBLE);
+            setVisibility(position < mMaxLength, ((FooterViewHolder) holder).itemRelative);
             if (ImageRecycler.mAddRes != null) {
                 ((FooterViewHolder) holder).img.setImageDrawable(ImageRecycler.mAddRes);
             }
@@ -113,6 +112,20 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
         }
     }
 
+    private void setVisibility(boolean isVisible, ViewGroup itemView) {
+        ViewGroup.LayoutParams param = (ViewGroup.LayoutParams) itemView.getLayoutParams();
+        if (isVisible) {
+            param.height = LinearLayout.LayoutParams.MATCH_PARENT;
+            param.width = LinearLayout.LayoutParams.MATCH_PARENT;
+            itemView.setVisibility(View.VISIBLE);
+        } else {
+            itemView.setVisibility(View.GONE);
+            param.height = 0;
+            param.width = 0;
+        }
+        itemView.setLayoutParams(param);
+    }
+
     public void setOnAddImgClick(ImageRecycler.OnAddImgClick onAddImgClick) {
         this.onAddImgClick = onAddImgClick;
     }
@@ -162,6 +175,9 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
     }
 
     public void addData(@IntRange(from = 0L) int position, @NonNull String data) {
+        if (position >= this.mMaxLength) {
+            return;
+        }
         this.mData.add(position, data);
         this.notifyItemInserted(position);
         this.compatibilityDataSizeChanged(1);
@@ -174,6 +190,9 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
     }
 
     public void remove(@IntRange(from = 0L) int position) {
+        if (position >= this.mMaxLength) {
+            return;
+        }
         this.mData.remove(position);
         this.notifyItemRemoved(position);
         this.compatibilityDataSizeChanged(0);
@@ -181,6 +200,9 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
     }
 
     public void setData(@IntRange(from = 0L) int index, @NonNull String data) {
+        if (index >= this.mMaxLength) {
+            return;
+        }
         this.mData.set(index, data);
         this.notifyItemChanged(index);
     }
@@ -202,7 +224,6 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
             this.mData.clear();
             this.mData.addAll(data);
         }
-
         this.notifyDataSetChanged();
     }
 
@@ -211,7 +232,6 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
         if (dataSize == size) {
             this.notifyDataSetChanged();
         }
-
     }
 
     @NonNull
@@ -226,7 +246,7 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
     static class ViewHolder extends RecyclerView.ViewHolder {
 
-        private RelativeLayout itemRelative;
+        private SquareRelativeLayout itemRelative;
         private ImageView img;
 
         public ViewHolder(@NonNull View itemView) {
@@ -244,7 +264,7 @@ class ImagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
     static class FooterViewHolder extends RecyclerView.ViewHolder {
 
-        private RelativeLayout itemRelative;
+        private SquareRelativeLayout itemRelative;
         private ImageView img;
 
         public FooterViewHolder(@NonNull View itemView) {