app/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/pipirrapp/bean/net/DealDetailResult.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/pipirrapp/bean/net/ImageResult.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/activity_order_detail.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/build.gradle
@@ -181,4 +181,12 @@ implementation 'io.github.lucksiege:pictureselector:v3.11.2' // 图片压缩 (按需引入) implementation 'io.github.lucksiege:compress:v3.11.2' // 图片查看 implementation('com.github.SherlockGougou:BigImageViewPager:androidx-7.2.3') { exclude group: 'androidx.appcompat'; exclude group: 'com.google.android.material'; exclude group: 'androidx.core'; } } app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -7,20 +7,36 @@ import android.view.View; import androidx.annotation.Nullable; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.adapter.ImageAdapter; import com.dayu.pipirrapp.bean.net.DealDetailResult; import com.dayu.pipirrapp.bean.net.ImageResult; import com.dayu.pipirrapp.bean.net.OrderDetailResult; import com.dayu.pipirrapp.databinding.ActivityOrderDetailBinding; import com.dayu.pipirrapp.net.ApiManager; import com.dayu.pipirrapp.net.BaseResponse; import com.dayu.pipirrapp.net.Constants; import com.dayu.pipirrapp.net.subscribers.SubscriberListener; import com.dayu.pipirrapp.tool.FullyGridLayoutManager; import com.dayu.pipirrapp.tool.GlideEngine; import com.dayu.pipirrapp.utils.ToastUtil; import com.dayu.pipirrapp.view.TitleBar; import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.decoration.GridSpacingItemDecoration; import com.luck.picture.lib.engine.ImageEngine; import com.luck.picture.lib.utils.DensityUtil; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import cc.shinichi.library.ImagePreview; import cc.shinichi.library.bean.ImageInfo; /** * OrderDetailActivity - @@ -34,6 +50,10 @@ ActivityOrderDetailBinding binding; String workOrderId; String proResultId; ImageAdapter mAdapter; List<ImageResult> images = new ArrayList<>(); RecyclerView mRecyclerView; final List<String> imageInfoList = new ArrayList<>(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -61,6 +81,20 @@ binding.setItemclidk(OrderDetailActivity.this); mRecyclerView = binding.recyclerView; FullyGridLayoutManager manager = new FullyGridLayoutManager(this, 4, GridLayoutManager.VERTICAL, false); mRecyclerView.setLayoutManager(manager); RecyclerView.ItemAnimator itemAnimator = mRecyclerView.getItemAnimator(); if (itemAnimator != null) { ((SimpleItemAnimator) itemAnimator).setSupportsChangeAnimations(false); } // 添加间距装饰,确保图片有合适的间隔 mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(4, DensityUtil.dip2px(this, 8), false)); mAdapter = new ImageAdapter(this, images, (v, position) -> { ImagePreview.getInstance().setContext(OrderDetailActivity.this).setImageList(imageInfoList).start(); }); mRecyclerView.setAdapter(mAdapter); } /** @@ -132,7 +166,13 @@ if (t.isSuccess()) { if (t.isSuccess()) { if (t.getContent() != null) { binding.orderDealLL.setVisibility(View.VISIBLE); binding.setDealData(t.getContent()); images.addAll(t.getContent().getImages()); for (ImageResult imageResult : images) { imageInfoList.add(imageResult.getWebPath()); } mAdapter.notifyDataSetChanged(); } else { ToastUtil.showToast(OrderDetailActivity.this, t.getMsg()); } app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
@@ -14,7 +14,6 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.listener.OnItemLongClickListener; import com.luck.picture.lib.adapter.holder.PreviewGalleryAdapter; import com.luck.picture.lib.config.PictureMimeType; import com.luck.picture.lib.config.SelectMimeType; import com.luck.picture.lib.entity.LocalMedia; app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java
@@ -1,5 +1,6 @@ package com.dayu.pipirrapp.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -8,7 +9,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.bean.net.ImageResult; import com.dayu.pipirrapp.tool.GlideEngine; import java.util.List; /** * ImageAdapter - @@ -17,12 +24,16 @@ * @version 1.0 * @since 2024-11-27 */ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder>{ private String[] imageUrls; // 图片的 URL 或本地路径 public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> { private List<ImageResult> imageUrls; // 图片的 URL 或本地路径 private Context mContext; private OnItemClickListener onItemClickListener; // 构造方法 public ImageAdapter(String[] imageUrls) { public ImageAdapter(Context context, List<ImageResult> imageUrls, OnItemClickListener onItemClickListener) { this.imageUrls = imageUrls; this.mContext = context; this.onItemClickListener = onItemClickListener; } @Override @@ -34,16 +45,26 @@ @Override public void onBindViewHolder(ImageViewHolder holder, int position) { // 使用 Glide 加载图片到 ImageView 中 Glide.with(holder.itemView.getContext()) .load(imageUrls[position]) // 加载图片的 URL 或路径 .thumbnail(0.1f) // 设置缩略图比例 .load(imageUrls.get(position).getWebPath()) // 加载图片的 URL 或路径 .thumbnail(0.1f) // 设置缩略图比例' .transform(new CenterCrop(), new RoundedCorners(8)) .placeholder(R.drawable.ps_image_placeholder) .into(holder.imageView); holder.imageView.setOnClickListener(v -> { onItemClickListener.onItemClick(v, position); }); } @Override public int getItemCount() { return imageUrls.length; if (imageUrls == null) { return 0; } return imageUrls.size(); } public static class ImageViewHolder extends RecyclerView.ViewHolder { app/src/main/java/com/dayu/pipirrapp/bean/net/DealDetailResult.java
@@ -1,5 +1,7 @@ package com.dayu.pipirrapp.bean.net; import java.util.List; /** * DealDetailResult -处理结果详情接口 * @@ -19,6 +21,16 @@ int state;//状态 1-已上报,2-已通过,3-已驳回 String stateName;// 状态名称 List<ImageResult> images; public List<ImageResult> getImages() { return images; } public void setImages(List<ImageResult> images) { this.images = images; } public String getProResultId() { return proResultId; } app/src/main/java/com/dayu/pipirrapp/bean/net/ImageResult.java
New file @@ -0,0 +1,29 @@ package com.dayu.pipirrapp.bean.net; /** * ImageResult -返回的图片相关 * * @author zuoxiao * @version 1.0 * @since 2024-12-06 */ public class ImageResult { String id; String webPath; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getWebPath() { return webPath; } public void setWebPath(String webPath) { this.webPath = webPath; } } app/src/main/res/layout/activity_order_detail.xml
@@ -271,7 +271,6 @@ android:id="@+id/xiangMuType" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{data.taskContent}" android:textColor="@color/manage_item_text" android:textSize="@dimen/order_detail_text_size" /> @@ -284,13 +283,19 @@ android:id="@+id/orderDealLL" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:orientation="vertical" android:visibility="visible"> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/base_blue" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginTop="5dp" android:gravity="center" android:text="处理结果" android:textColor="@color/base_blue" @@ -368,7 +373,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginTop="10dp" /> android:layout_marginTop="10dp" android:minHeight="100dp" /> </LinearLayout>