From 702f770eb8f74877651dbba3998780fe52a5da07 Mon Sep 17 00:00:00 2001 From: zhangqin Date: Thu, 30 Jul 2020 09:18:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A9=BA=E6=A0=BC=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E4=B8=8A=E4=BC=A0view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../sdwfqin/quickseed/model/PictureModel.java | 14 +++++--- .../ui/components/PictureUploadActivity.java | 7 ++-- config.gradle | 4 +-- .../widget/pictureupload/PictureUpModel.java | 29 --------------- .../pictureupload/PictureUploadAdapter.java | 4 +-- .../pictureupload/PictureUploadCallback.java | 2 +- .../pictureupload/PictureUploadModel.java | 15 ++++++++ .../pictureupload/PictureUploadView.java | 36 ++++++++++--------- 9 files changed, 52 insertions(+), 61 deletions(-) delete mode 100644 widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUpModel.java create mode 100644 widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadModel.java diff --git a/README.md b/README.md index 32ec3ad..ead2453 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ # 导入指南 ``` groovy -def quicklib = "4.2.0" +def quicklib = "4.4.0" // quicklib(Base) implementation "com.sdwfqin.quicklib:quicklib:$quicklib" diff --git a/app/src/main/java/com/sdwfqin/quickseed/model/PictureModel.java b/app/src/main/java/com/sdwfqin/quickseed/model/PictureModel.java index f64cd04..d6d0f01 100644 --- a/app/src/main/java/com/sdwfqin/quickseed/model/PictureModel.java +++ b/app/src/main/java/com/sdwfqin/quickseed/model/PictureModel.java @@ -2,20 +2,19 @@ import android.net.Uri; -import com.sdwfqin.widget.pictureupload.PictureUpModel; +import com.sdwfqin.widget.pictureupload.PictureUploadModel; /** * 描述: * * @author zhangqin - * @date 2018/5/31 + * @date 2018/5/3,1 */ -public class PictureModel extends PictureUpModel { +public class PictureModel implements PictureUploadModel { private Uri imgPath; public PictureModel(Uri imgPath) { - super(imgPath); this.imgPath = imgPath; } @@ -31,7 +30,12 @@ public void setImgPath(Uri imgPath) { public String toString() { return "PictureModel{" + "imgPath='" + imgPath + '\'' + - ", image=" + image + + ", image=" + imgPath + '}'; } + + @Override + public Object getPictureImage() { + return imgPath; + } } diff --git a/app/src/main/java/com/sdwfqin/quickseed/ui/components/PictureUploadActivity.java b/app/src/main/java/com/sdwfqin/quickseed/ui/components/PictureUploadActivity.java index 1ae3b63..eae4f8f 100644 --- a/app/src/main/java/com/sdwfqin/quickseed/ui/components/PictureUploadActivity.java +++ b/app/src/main/java/com/sdwfqin/quickseed/ui/components/PictureUploadActivity.java @@ -26,8 +26,6 @@ public class PictureUploadActivity extends SampleBaseActivity mPic; - @Override protected ActivityPictureUploadBinding getViewBinding() { return ActivityPictureUploadBinding.inflate(getLayoutInflater()); @@ -39,9 +37,8 @@ protected void initEventAndData() { mTopBar.addLeftBackImageButton() .setOnClickListener(v -> finish()); -// mPic = mBinding.pic; - mBinding.pic.setMaxColumn(3); + mBinding.pic.setMaxSize(12); mBinding.pic.setPicUploadCallback(new PictureUploadCallback() { @Override public void click(int position, PictureModel pictureModel, List list) { @@ -76,7 +73,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { for (int i = 0; i < selectList.size(); i++) { models.add(new PictureModel(selectList.get(i))); } - mBinding.pic.setAddData(models); + mBinding.pic.addData(models); // 刷新相册图片 if (selectList.size() == 1) { diff --git a/config.gradle b/config.gradle index 4e41a20..e9e43f3 100644 --- a/config.gradle +++ b/config.gradle @@ -1,7 +1,7 @@ ext { - versionCode = 202007231 - versionName = "4.3.0" + versionCode = 202007301 + versionName = "4.4.0" qmui = "2.0.0-alpha10" okhttp = "4.7.2" diff --git a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUpModel.java b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUpModel.java deleted file mode 100644 index 62f225a..0000000 --- a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUpModel.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.sdwfqin.widget.pictureupload; - -import java.io.Serializable; - -/** - * 描述: - * - * @author zhangqin - * @date 2018/5/31 - */ -public class PictureUpModel implements Serializable { - - protected T image; - - public PictureUpModel() { - } - - public PictureUpModel(T image) { - this.image = image; - } - - public T getImage() { - return image; - } - - public void setImage(T image) { - this.image = image; - } -} diff --git a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadAdapter.java b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadAdapter.java index 93563b3..ed70128 100644 --- a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadAdapter.java +++ b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadAdapter.java @@ -17,7 +17,7 @@ * @author zhangqin * @date 2018/5/31 */ -public class PictureUploadAdapter extends BaseQuickAdapter { +public class PictureUploadAdapter extends BaseQuickAdapter { public PictureUploadAdapter(int layoutResId, @Nullable List data) { super(layoutResId, data); @@ -30,7 +30,7 @@ protected void convert(BaseViewHolder helper, T item) { if (item != null) { ImageLoader imageLoader = new ImageLoader.Builder() - .setImagePath(item.getImage()) + .setImagePath(item.getPictureImage()) .setPlaceholder(R.mipmap.image_loading) .setErrorImage(R.mipmap.image_load_err) .build(iiImg); diff --git a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadCallback.java b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadCallback.java index 89ceb1c..268bda6 100644 --- a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadCallback.java +++ b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadCallback.java @@ -8,7 +8,7 @@ * @author zhangqin * @date 2018/5/31 */ -public interface PictureUploadCallback { +public interface PictureUploadCallback { /** * 移除某个图片 diff --git a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadModel.java b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadModel.java new file mode 100644 index 0000000..f7e31c9 --- /dev/null +++ b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadModel.java @@ -0,0 +1,15 @@ +package com.sdwfqin.widget.pictureupload; + +/** + * 描述: + * + * @author zhangqin + * @date 2018/5/31 + */ +public interface PictureUploadModel { + + /** + * 获取图像文件 + */ + Object getPictureImage(); +} diff --git a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadView.java b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadView.java index fde8184..3d430fa 100644 --- a/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadView.java +++ b/widget/src/main/java/com/sdwfqin/widget/pictureupload/PictureUploadView.java @@ -5,7 +5,7 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; -import android.widget.RelativeLayout; +import android.widget.FrameLayout; import androidx.annotation.LayoutRes; import androidx.annotation.Nullable; @@ -13,7 +13,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.blankj.utilcode.util.ConvertUtils; -import com.blankj.utilcode.util.LogUtils; import com.sdwfqin.widget.R; import java.util.ArrayList; @@ -25,7 +24,7 @@ * @author zhangqin * @date 2018/5/31 */ -public class PictureUploadView extends RelativeLayout { +public class PictureUploadView extends FrameLayout { private Context mContext; @@ -61,6 +60,7 @@ public PictureUploadView(Context context, @Nullable AttributeSet attrs) { mContext = context; LayoutInflater.from(context).inflate(R.layout.quick_picture_upload_view, this); mRecyclerView = findViewById(R.id.rv); + mRecyclerView.setNestedScrollingEnabled(false); mDataList.add(null); initList(); @@ -110,12 +110,11 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, Recycle } else if (i == R.id.ii_del) { if (mDataList.size() == mMaxSize && mDataList.get(mDataList.size() - 1) != null) { - mUploadAdapter.remove(position); + mUploadAdapter.removeAt(position); mDataList.add(null); - mUploadAdapter.setNewData(mDataList); + mUploadAdapter.setList(mDataList); } else { - mUploadAdapter.remove(position); - mUploadAdapter.notifyDataSetChanged(); + mUploadAdapter.removeAt(position); } if (mCallback == null) { return; @@ -165,20 +164,28 @@ public List getData() { */ public void setNewData(List data) { mDataList.clear(); + mDataList = data == null ? new ArrayList<>() : data; int size = mDataList.size(); if (size < mMaxSize && mDataList.get(size - 1) != null) { // 如果数量小于最大值,添加一个null作为占位符 mDataList.add(null); } - mDataList = data; - mUploadAdapter.notifyDataSetChanged(); -// mUploadAdapter.setNewData(mDataList); + mUploadAdapter.setList(mDataList); } /** * 添加图片 */ - public void setAddData(List data) { + public void addData(T data) { + List list = new ArrayList<>(); + list.add(data); + addData(list); + } + + /** + * 添加图片 + */ + public void addData(List data) { int size = mDataList.size(); if (size <= mMaxSize && mDataList.get(size - 1) == null) { mDataList.remove(mDataList.size() - 1); @@ -188,17 +195,14 @@ public void setAddData(List data) { // 如果数量小于最大值,添加一个null作为占位符 mDataList.add(null); } - LogUtils.e(mDataList); - // fixme brvah3 - mUploadAdapter.notifyDataSetChanged(); -// mUploadAdapter.setNewData(mDataList); + mUploadAdapter.setList(mDataList); } /** * 移除全部图片 */ public void removeAll() { - mUploadAdapter.setNewData(null); + mUploadAdapter.setList(null); mDataList.clear(); }