0

J'ai actuellement un arraylist comme suit:comment transformer une chaîne d'URL en drawable?

private void loadImages() { 
     images = new ArrayList<>(); 

     images.add(getResources().getDrawable(R.drawable.imag1)); 
     images.add(getResources().getDrawable(R.drawable.imag2)); 
     images.add(getResources().getDrawable(R.drawable.imag3)); 
} 

Je veux être en mesure de convertir une URL dans ces dessinables tels que:

drawable1 = "http.someimage.com/image.png" 
drawable2 = "http.someimage.com/newimage.png" 

suivie

private void loadImages() { 
      images = new ArrayList<>(); 

      images.add(getResources().getDrawable(drawable1)); 
      images.add(getResources().getDrawable(drawable2)); 
...etc } 

est-il un moyen facile de contourner cela? Je tiens absolument à coller aux drawables, mais je ne peux pas trouver un moyen de convertir une URL en drawable Des idées? Merci!

Répondre

1

Si vous avez une URL de l'image, vous devez d'abord la télécharger.

Vous ne pouvez pas "convertir" une URL en un dessinable.

vous besoin de quelque chose comme ceci:

URL url = new URL("http.someimage.com/image.png"); 
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 

Ensuite, si vous avez besoin d'ajouter l'image dans un objet ImageView vous pouvez appeler la méthode .setImageBitmap (bmp). Sinon, il existe des moyens d'extraire un objet Drawable à partir du bitmap , vous pouvez vérifier ce précédent answer. Puis, une fois que vous avez le dessinable, vous pouvez l'ajouter à votre arraylist.

Espoir Je suis votre bonne question

P.S .: veillez à ne pas le faire sur un fil principal car il est une opération de réseau! utiliser un fil ou un asynctask

+1

J'ai regardé cette réponse mais n'ai pas fonctionné pour moi comme prévu. Pouvez-vous me montrer en ce qui concerne mon code pour arraylist pour quelques images. –

+0

Une fois que vous obtenez le Bitmap, vous devez le convertir en un objet Drawable. Pour le faire pour deux images, il suffit de doubler l'extrait de code que je vous ai posté ci-dessus. pour convertir Bitmaps en Drawables, vous pouvez utiliser [link] (https://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html) – inno15

+0

en ajoutant que dans asynctask aidé, merci! –