adapter设置
public class MortgageCarImageAdapter extends BaseMultiItemQuickAdapter<ImageBean,RecyclerViewHolder>{ public MortgageCarImageAdapter(List<ImageBean> data) { super(data); addItemType(11, R.layout.mortgage_activity_car_image); } @Override protected void convert(final RecyclerViewHolder helper, ImageBean item) { ImageView imageView = helper.getView(R.id.mortgage_car_image); ImageView deleteImage = helper.getView(R.id.mortgage_delect_car_image); Glide.with(mContext).load(item.getImageFile()).into(imageView); if (item.isUpImage()){ deleteImage.setVisibility(View.VISIBLE); }else { deleteImage.setVisibility(View.GONE); } deleteImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getData().remove(helper.getAdapterPosition()); int clickPosition = 0; for (int i = 0;i<getData().size();i++){ if (!getData().get(i).isUpImage()){ clickPosition = 1; } } if (clickPosition == 0){ ImageBean bean = new ImageBean(); bean.setImageFile(R.mipmap.zhaopian); bean.setUpImage(false); getData().add(bean); } notifyDataSetChanged(); } }); } }
多选照片
oncreat中初始化在initRecyclerView()方法后
ImageBean imageBean = new ImageBean(); imageBean.setImageFile(R.mipmap.zhaopian); imageBean.setUpImage(false); mAdapter.addData(imageBean); private void initRecyclerView() { mAdapter = new MortgageCarImageAdapter(new ArrayList<ImageBean>()); mRecyclerView.setLayoutManager(new GridLayoutManager(this,4)); mRecyclerView.setAdapter(mAdapter); mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { @Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) { ImageBean image = mAdapter.getData().get(position); if (!image.isUpImage()){ checkedMorePhoto(); } } }); checkedPhotot方法
//多选照片 private void checkedMorePhoto(){ final int size = 5-mAdapter.getData().size(); RxGalleryFinal.with(MortgageVehicleActivity.this) .image() .multiple() .maxSize(size) .imageLoader(ImageLoaderType.PICASSO) .subscribe(new RxBusResultDisposable<ImageMultipleResultEvent>() { @Override protected void onEvent(ImageMultipleResultEvent baseResultEvent) throws Exception { if (size == baseResultEvent.getResult().size()){ mAdapter.getData().remove(mAdapter.getData().size()-1); for (int i=0;i<baseResultEvent.getResult().size();i++){ ImageBean imageBean = new ImageBean(); imageBean.setUpImage(true); File file = new File(String.valueOf(baseResultEvent.getResult().get(i).getOriginalPath())); imageBean.setImageFile(file); mAdapter.addData(imageBean); mAdapter.notifyDataSetChanged(); } }else { for (int i = 0; i < baseResultEvent.getResult().size(); i++) { ImageBean bean = new ImageBean(); bean.setUpImage(true); File file = new File(baseResultEvent.getResult().get(i).getOriginalPath()); bean.setImageFile(file); mAdapter.addData(0, bean); } } } } ).openGallery(); }