J'ai deux options pour définir une image, soit en la choisissant dans la galerie ou en la capturant.Obtenir "Provoqué par: java.lang.NullPointerException: uri" lorsque vous essayez de définir l'image après l'avoir capturé
Lorsque l'utilisateur choisit l'image de la galerie, il renvoie un ImageView Clank et lorsque l'utilisateur essaie de mettre l'image après l'avoir capturée, les accidents d'applications donnant erreur suivant: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.abc.xyz/com.abc.xyz.Activity}: java.lang.NullPointerException: uri
Voilà comment je lance le chooser:
protected DialogInterface.OnClickListener mDialogListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int position) {
switch (position) {
case 0: // Take picture
Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePhotoIntent, TAKE_PHOTO_REQUEST);
break;
case 1: // Choose picture
Intent choosePhotoIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
choosePhotoIntent.setType("image/*");
startActivityForResult(choosePhotoIntent, PICK_PHOTO_REQUEST);
break;
}
}
};
Voilà comment je mettre l'image à l'ImageView:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == PICK_PHOTO_REQUEST || requestCode == TAKE_PHOTO_REQUEST) {
if (data == null) {
// display an error
return;
}
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
// error on the line below
Cursor cursor = this.getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
//
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Picasso.with(this)
.load(picturePath)
.into(hPic);
hPicTag.setVisibility(View.INVISIBLE);
}
} else if (resultCode == Activity.RESULT_CANCELED) {
Toast.makeText(getBaseContext(), "Something went wrong!", Toast.LENGTH_LONG).show();
}
}
S'il vous plaît laissez-moi savoir ce qui ne va pas ici.
Désolé pour le mauvais formatage de la question. Je suis toujours un débutant ici.
Voir cette Il vous aidera .. http://stackoverflow.com/questions/33938665/android-integrating-gallery -functionality-with-camera-capture/33939277 # 33939277 –
cette réponse a fait l'affaire pour moi: http://stackoverflow.com/a/5991757/6144372 –