web-dev-qa-db-fra.com

Récupérer le bitmap de l'URI

J'ai inclus l'option "partager via myApp". J'ai inséré le code suivant dans la classe d'activité de réception.

    // Get the intent that started this activity
    Intent intent = getIntent();
    Uri data = intent.getData();

    // Figure out what to do based on the intent type
    if (intent.getType().indexOf("image/") != -1) {
        // Handle intents with image data ...
}

Quelle est la prochaine étape pour récupérer l'image bitmap.

15
Robert

Comme vous avez déjà obtenu l'Uri. Maintenant, vous devez passer cet Uri dans getBitmap() pour obtenir le bitmap et utiliser ce bitmap.

Uri imageUri = intent.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
Imageview my_img_view = (Imageview ) findViewById (R.id.my_img_view);
my_img_view.setImageBitmap(bitmap);
37
Chintan Khetiya

Pour obtenir un bitmap depuis uri,

Bitmap  mBitmap = Media.getBitmap(this.getContentResolver(), uri);

J'espère que cela vous aidera.

8
nikvs
Retrive bitmap from uri.....

public static Bitmap decodeUriToBitmap(Context mContext, Uri sendUri) {
        Bitmap getBitmap = null;
        try {
            InputStream image_stream;
            try {
                image_stream = mContext.getContentResolver().openInputStream(sendUri);
                getBitmap = BitmapFactory.decodeStream(image_stream);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return getBitmap;
    }
1

Vous pouvez essayer ça. Vous pouvez appeler setPic () dans la méthode onActivityResult. Je l'ai utilisé dans une application pour prendre des photos et le mettre dans une ImageView.

private void setPic() {

    //currentPhotoPath contains path of image file.
    //visorFoto is a reference to an ImageView object.
    File file = new File(currentPhotoPath);
    Uri imageUri = Uri.fromFile(file);
    visorFoto.setImageURI(imageUri);

}
0
Jose

C'est du travail pour moi

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
{
    Uri imageUri = data.getData();
    Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
}
}
0