@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE_REQUEST ) { filePath = data.getData(); try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), filePath); imageView.setImageBitmap(bitmap); Toast.makeText(this, data.getDataString(), Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } } else if (requestCode == CAMERA_REQUEST) { filePath = data.getData(); Log.i("hello", "REQUEST cALL"); try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), filePath); imageView.setImageBitmap(bitmap); } catch (Exception e) { Log.i("hello", "Exception" + e.getMessage()); } }
3 Réponses :
public String getRealPathFromURI(Uri uri) { String path = ""; if (getContentResolver() != null) { Cursor cursor = getContentResolver().query(uri, null, null, null, null); if (cursor != null) { cursor.moveToFirst(); int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); path = cursor.getString(idx); cursor.close(); } } return path; }
Mais la condition de choisir une image du stockage. Je peux définir la vue de l'image .. ce qui ne va pas?
@Wildanromiza a édité ma réponse. data.getdata () ne donne pas aussi de bitmap brut. srys
Je ne peux pas comprendre. le code dans votre lien partagé. Donnez-moi un moyen simple? en tous cas
@Wildanromiza sa manière simple. Le résultat de la caméra ne vous donnera pas le chemin du fichier direcly. Au lieu de cela, vous devez convertir le bitmap en chemin de fichier. Ce qui a besoin d'un processus comme pour obtenir l'URI du bitmap d'abord, puis traduisant l'URI dans le chemin de fichier.
Essayez ceci, espérons que cela vous aidera.
if (requestCode == CAMERA_REQUEST) { Bitmap bitmap= (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(bitmap); }
L'OP veut le faire du fichier
Pour utiliser le chemin de fichier image Vous devez faire comme ci-dessous
< Strong> 2) Intention de caméra d'appel strong> p> 3) strong> maintenant, vous devez configurer le fichier FileProvider. Dans le manifeste de votre application, ajoutez un fournisseur à votre application: p> 4) Créer un fichier de ressource 5) Obtenez l'imageFilePath forte> p> espère que cela fonctionne comme vous vous attendez. Pour plus de détails, vous pouvez voir Google Documents officiels ! P> < / p> res / xml / fichier_paths.xml code> strong> p>
com.example.package.name code> avec le réel Nom du package de votre application. p>
Avez-vous donné la permission à l'application Android pour accéder au stockage ??
Nouvelle image d'image de Android à partir d'un Caméra à l'aide du fournisseur de fichiers
écrire des données? . oke iam l'essayer
Vous devez donner la permission d'accéder au stockage externe et interne également pour API> 23 Vous aurez besoin de la permission de vérification à l'aide d'ActivityCompat.Requestpermissions
A propos du chemin de fichier que vous pouvez utiliser data.getData (). GetPath () ou externeStorageUtil.getpubliceXternalStorageBasedir