Afficher photo de la galerie photos dans ImageView

Résolu
CR16_Padawan Messages postés 56 Date d'inscription mercredi 7 juin 2023 Statut Membre Dernière intervention 30 avril 2024 - Modifié le 2 août 2023 à 15:42
CR16_Padawan Messages postés 56 Date d'inscription mercredi 7 juin 2023 Statut Membre Dernière intervention 30 avril 2024 - 4 août 2023 à 12:01

Bonjour,

je sollicite à nouveau vers expertise pour m'aider à résoudre mon problème.

Après de multiples tentatives de codage (trouvés un peu partout) je ne parviens pas à trouver la solution.

Je souhaite pouvoir afficher dans une ImageView une photo (à la taille de l'ImageView) de la galerie photos du téléphone.

Je constate 2 erreurs au moins:

1: startActivityForResult est barré, (Ligne 34)

2: message URI: (error: incompatible types: Uri cannot be converted to URI
            URI selectedImage = data.getData(); ) (Ligne 43)

Voici ce que j'ai fait

Vue5.java

package fr.xx.test;


import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import java.net.URI;

public class Vue5 extends AppCompatActivity {

    Button boutonPhoto;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vue5);


        boutonPhoto= (Button) findViewById(R.id.boutonphoto5);

        boutonphoto5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
               Intent intent = new Intent(intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
               startActivityForResult(intent,3);
                  }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode== RESULT_OK && data !=null){
            URI selectedImage = data.getData();
            ImageView image5= findViewById(R.id.imageView5);
            image5.setImageURI(selectedImage);
        }
    }
}

J'ai également ajouté dans:

AndroidManifest.xml


    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Je test avec un Device Manager "Pixel API 24" Android 7.0 ("Nougat")

Merci par avance pour votre aide.

CR16_Padawan


Windows / Edge 115.0.1901.188

A voir également:

2 réponses

BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 3 898
3 août 2023 à 15:37
0
CR16_Padawan Messages postés 56 Date d'inscription mercredi 7 juin 2023 Statut Membre Dernière intervention 30 avril 2024
4 août 2023 à 12:01

Bonjour BrunoCS

Merci pour ce retour, cela fonctionne comme prévu.

Bonne continuation.

A plus

CR16_Padawan

0