La suite de mon aventure :
Voici un bout de code,
qui marche bien. Maintenant je veux ajouter ce code pour réduire la taille des bm,
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
21
22
23
24
25 public void setImage(ImageView aView, URL aURL) { try { URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); // Bufferisation pour le téléchargement BufferedInputStream bis = new BufferedInputStream(is, 8192); // Création de l'image depuis le flux des données entrant Bitmap bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); // Fixe l'image sur le composant ImageView aView.setImageBitmap(bm); } catch (IOException e) { aView.setImageDrawable(mNoImage); Log.e("DVP Gallery", "Erreur téléchargement image URL : " + aURL.toString()); e.printStackTrace(); } }
qui me renvoie null pour le bm. J'ai essayé avec null à la place de rect mais c'est pareil.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeStream(bis, null, options); // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, 120, 120); // la fonction calculateInSampleSize est ok // Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; rect.set(1, 1, options.outWidth-1, options.outHeight-1); Bitmap bm = BitmapFactory.decodeStream(bis, rect, options);
Une idée ? Merci.
PS: cette méthode fonctionne très bien avec les fichiers de la SDCard en utilisant BitmapFactory.decodeFile(), et j'essaie de l'adapter pour les stream avec URL.
Partager