Bonjour à toutes et tous,

Voici un code récupérant une image, que j'affiche ensuite sur dans une ImageView :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
 
        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };
 
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            if (cursor != null) {
                cursor.moveToFirst();
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String picturePath = cursor.getString(columnIndex);
                soumissionIMG.setImageBitmap(BitmapFactory.decodeFile(picturePath));
                imageChange = true;
                cursor.close();
            }
        }
    }
Du très classique, on va dire.

Sur Android 4, pas de soucis, j'affiche bien l'image sélectionnée, à la taille de mon ImageView, et quand je la transmets (autre partie du code), je la récupère bien.

Sous Android 5 et 6 (j'ai fait le test sur les deux), picturePath retourne bien le chemin de l'image, mais à l'affichage, soumissionIMG semble vide (je dis semble, car soumissionIMG est pré-remplie d'une image par défaut. Si je ne sélectionne rien, c'est cette image qui s'affiche. Mais là, plus d'image par défaut, et pas l'image sélectionnée). Et si d'aventure je transmets mon image "fantôme", j'ai le droit à un magnifique rectangle noir.

Une idée de ce qui a changé entre les deux versions ?