在recyclerview Android Studio上显示照片

问题描述

我目前在recyclerview上遇到麻烦,我希望能够在列表中包含多个元素,并为我选择的每个元素拍照,然后在该元素上显示照片,bindviewholder看起来像这个:

@Override
    public void onBindViewHolder(Espac holder,final int position) {
        final Espac holder2 = holder;
        final EspacioModel espac = list.get(position);

        holder.nomb.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                   takephoto(position,holder2,espacio);
                } catch (InterruptedException | IOException e) {
                    e.printstacktrace();
                }
            }
        });
        holder.imgV.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    takephoto(position,espacio);
                } catch (InterruptedException | IOException e) {
                    e.printstacktrace();
                }
            }
        });
    }

拍照方法

Espac holderImg;
public void takephoto(int pos,Espac holder,EspacioModel espac) throws InterruptedException,IOException {

    holderImg = holder;
    final EspacioModel espac2 = espacio;
    final int pos2 = pos;

    File folderIMG = new File(Environment.getExternalStorageDirectory() + "/DCIM/nutresa/","img");


    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());
    Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    namePhoto = currentDate() + "_" + "_Panoram_position:"+pos+".jpg";
    path = Environment.getExternalStorageDirectory() + "/DCIM/panoram/img/panoramic" + namePhoto;
    File image = new File(folderIMG,namePhoto);
    uriPhoto = Uri.fromFile(image);
    camera.putExtra(MediaStore.EXTRA_OUTPUT,uriPhoto);
    startActivityForResult(camera,TAKE_PICTURE);

}

然后在onActivityResult中,我想将生成的照片设置为新的元素图像,我尝试使用此图片,但元素图像没有变化。

 @Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == TAKE_PICTURE) {
            if (TomarFoto.getInstance() != null) {
                try {
                    Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uriFoto));
                    holderImg.imgV.setimageBitmap(bitmap);
                } catch (IOException e) {
                    e.printstacktrace();
                }

                TomarFoto.getInstance().finish();
            }
        }
    }
}

以下是我的模型和视图持有者,以防万一:

class Espac extends RecyclerView.ViewHolder {

    TextView nomb;
    ImageView imgV;

    public Espac(View itemView) {
        super(itemView);

        this.nomb = (TextView) itemView.findViewById(R.id.nombMosaic);
        this.imgV = (ImageView) itemView.findViewById(R.id.image);
    }
}

class EspacioModel {
    String nomb;
    ImageView imgV;

    public EspacioModel(String nomb,ImageView iv) {

        this.nombre = nombre;
        this.imgV = iv;
    }
}

先谢谢您

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)