充电桩app代码

GridImageAdapter.java 4.4KB

    package com.electric.chargingpile.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.electric.chargingpile.R; import com.luck.picture.lib.entity.LocalMedia; import com.luck.picture.lib.entity.MediaData; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; public class GridImageAdapter extends RecyclerView.Adapter<GridImageAdapter.ViewHolder> { private List<LocalMedia> mDatas=new ArrayList<>(); private Context context; private int maxCount=9; private int mItemWidth=0; private int mItemMarginTop=0; public int getMaxCount() { return maxCount; } public void setMaxCount(int maxCount) { this.maxCount = maxCount; } private GridImgListener mListener =null; public GridImgListener getListener() { return mListener; } public void setListener(GridImgListener mListener) { this.mListener = mListener; } public GridImageAdapter(Context context, int maxCount, int mItemWidth,int mItemMarginTop) { this.context = context; this.maxCount = maxCount; this.mItemWidth = mItemWidth; this.mItemMarginTop = mItemMarginTop; } public List<LocalMedia> getDatas() { return mDatas; } public void setDatas(List<LocalMedia> mDatas) { this.mDatas = mDatas; notifyDataSetChanged(); } @NonNull @NotNull @Override public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) { View rootView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_item_add_img, parent, false); GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams) rootView.getLayoutParams(); layoutParams.width=mItemWidth; layoutParams.height=mItemWidth; layoutParams.topMargin = mItemMarginTop; rootView.setLayoutParams(layoutParams); return new ViewHolder(rootView); } @Override public void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position) { if (position == getItemCount() - 1 && mDatas.size() < maxCount) { //进行添加 holder.itemView.setOnClickListener(v->{ if (mListener != null){ mListener.add(); } }); holder.imageView.setImageResource(R.drawable.icon_comment_upload); // holder.imageView.setImageResource(R.drawable.addpic65); holder.remove.setVisibility( View.GONE); } else { String path=""; LocalMedia data = mDatas.get(position); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) path= data.getAndroidQToPath(); else { path= data.getPath(); } Glide.with(context) .load(path) .into(holder.imageView); holder.remove.setVisibility( View.VISIBLE); holder.remove.setOnClickListener(v->{ //删除 mDatas.remove(position); notifyDataSetChanged(); if (mListener!=null){ mListener.remove(position); } }); holder.itemView.setOnClickListener(v->{ //跳转至图片详情页 if (mListener != null){ mListener.open(position,data); } }); } } @Override public int getItemCount() { if (mDatas.size() >= maxCount) { return maxCount; } else { return mDatas.size() + 1; } } public static class ViewHolder extends RecyclerView.ViewHolder { private final ImageView remove; private final ImageView imageView; public ViewHolder(@NonNull @NotNull View itemView) { super(itemView); imageView = itemView.findViewById(R.id.image); remove = itemView.findViewById(R.id.remove); } } public interface GridImgListener{ void add(); void remove(int position); void open(int position, LocalMedia mLocalMedia ); } }