问题描述
我目前在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 (将#修改为@)