package com.dayu.pipirrapp.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; 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.ImageBean; import com.dayu.pipirrapp.bean.net.ImageResult; import com.dayu.pipirrapp.bean.net.UplodFileState; import com.dayu.pipirrapp.tool.GlideEngine; import java.util.List; /** * ImageAdapter - * * @author zuoxiao * @version 1.0 * @since 2024-11-27 */ public class ImageAdapter extends RecyclerView.Adapter { private List imageUrls; // 图片的 URL 或本地路径 private Context mContext; private OnItemClickListener onItemClickListener; // 构造方法 public ImageAdapter(Context context, List imageUrls, OnItemClickListener onItemClickListener) { this.imageUrls = imageUrls; this.mContext = context; this.onItemClickListener = onItemClickListener; } @Override public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // 获取布局文件 View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false); return new ImageViewHolder(view); } @Override public void onBindViewHolder(ImageViewHolder holder, int position) { ImageBean imageBean=imageUrls.get(position); if (imageBean.getType()== UplodFileState.VIDEO_TYPE){ holder.play.setVisibility(View.VISIBLE); }else { holder.play.setVisibility(View.GONE); } // 使用 Glide 加载图片到 ImageView 中 Glide.with(holder.itemView.getContext()) .load(imageBean.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() { if (imageUrls == null) { return 0; } return imageUrls.size(); } public static class ImageViewHolder extends RecyclerView.ViewHolder { ImageView imageView; ImageView play; public ImageViewHolder(View itemView) { super(itemView); imageView = itemView.findViewById(R.id.thumbnailImageView); play=itemView.findViewById(R.id.item_play); } } public interface OnItemClickListener { /** * Item click event * * @param v * @param position */ void onItemClick(View v, int position); } }