Comment afficher L'image à partir de L'URL sur Android

je veux afficher l'image à l'écran. L'Image doit provenir de L'URL, et ne pas tirer.

Le Code

est ici:

<ImageView https://over.wiki/android/" class="blnk">android:id="@+id/ImageView01" android:src = "http://l.yimg.com/a/i/us/we/52/21.gif"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>

mais il donne l'erreur au moment de la compilation.

Comment afficher L'image à partir de L'URL dans Android?

47
demandé sur jww 2011-06-20 09:56:16

9 réponses

vous pouvez afficher directement l'image du web sans le télécharger. Veuillez vérifier la fonction ci-dessous . Il affichera les images du web dans votre vue d'image.

public static Drawable LoadImageFromWebOperations(String url) {
    try {
        InputStream is = (InputStream) new URL(url).getContent();
        Drawable d = Drawable.createFromStream(is, "src name");
        return d;
    } catch (Exception e) {
        return null;
    }
}

définit ensuite image à imageview en utilisant le code dans votre activité.

92
répondu Chirag 2011-06-20 06:27:17

vous pouvez essayer ceci que je trouve dans une autre question.

Android, faire une image à une URL égale à L'image D'ImageView

try {
  ImageView i = (ImageView)findViewById(R.id.image);
  Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
  i.setImageBitmap(bitmap); 
} catch (MalformedURLException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}
14
répondu DzMonster 2017-05-23 11:55:03

j'ai essayé ce code en travaillant pour moi, obtenir l'image directement à partir de l'url

      private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
      ImageView bmImage;
      public DownloadImageTask(ImageView bmImage) {
          this.bmImage = bmImage;
      }

      protected Bitmap doInBackground(String... urls) {
          String urldisplay = urls[0];
          Bitmap mIcon11 = null;
          try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
          } catch (Exception e) {
              Log.e("Error", e.getMessage());
              e.printStackTrace();
          }
          return mIcon11;
      }

      protected void onPostExecute(Bitmap result) {
          bmImage.setImageBitmap(result);
      }
    }

utilisation à l'intérieur onCreate() la méthode

nouveau DownloadImageTask ((ImageView) findViewById(R. id.l'image)) .exécuter (" "http://scoopak.com/wp-content/uploads/2013/06/free-hd-natural-wallpapers-download-for-pc.jpg ");

10
répondu Satheeshkumar Somu 2015-12-18 11:32:25

vous pouvez essayer avec Picasso, c'est vraiment agréable et facile. N'oubliez pas d'ajouter les autorisations dans le manifeste.

Picasso.with(context)
                     .load("http://ImageURL")
                     .resize(width,height)
                     .into(imageView );

vous pouvez aussi consulter un tutoriel ici : Youtube / Github

7
répondu r3dm4n 2017-08-08 08:38:22

pour un exemple simple,

http://www.helloandroid.com/tutorials/how-download-fileimage-url-your-device

vous devrez utiliser httpClient et télécharger l'image (le mettre en cache si nécessaire),

solution proposée pour afficher des images dans listview, essentiellement le même code (Vérifier le code où imageview est défini à partir de l'url) pour l'affichage.

chargement différé des images dans ListView

5
répondu sat 2017-05-23 12:26:38

j'ai récupéré une image à partir D'une URL et stocké sur ma carte SD en utilisant le code suivant:

public String Downloadfromurl(String Url)
{

 String filepath=null;

 try {

  URL url = new URL(Url);

  //create the new connection

  HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

  //set up some things on the connection
  urlConnection.setRequestMethod("GET");

  urlConnection.setDoOutput(true); 

   //and connect!

  urlConnection.connect();

  //set the path where we want to save the file
  //in this case, going to save it on the root directory of the
  //sd card.

  folder = new File(Environment.getExternalStorageDirectory().toString()+"/img");

  folder.mkdirs();

  //create a new file, specifying the path, and the filename
  //which we want to save the file as.

  String filename= "page"+no+".PNG";   

  file = new File(folder,filename);

  if(file.createNewFile())

  {

   file.createNewFile();

  }

  //this will be used to write the downloaded data into the file we created
  FileOutputStream fileOutput = new FileOutputStream(file);

  //this will be used in reading the data from the internet
  InputStream inputStream = urlConnection.getInputStream();

  //this is the total size of the file
  int totalSize = urlConnection.getContentLength();
  //variable to store total downloaded bytes
  int downloadedSize = 0;

  //create a buffer...
  byte[] buffer = new byte[1024];
  int bufferLength = 0; //used to store a temporary size of the buffer

  //now, read through the input buffer and write the contents to the file
  while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
   //add the data in the buffer to the file in the file output stream (the file on the sd card
   fileOutput.write(buffer, 0, bufferLength);
   //add up the size so we know how much is downloaded
   downloadedSize += bufferLength;
   //this is where you would do something to report the prgress, like this maybe
   Log.i("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ;
  }
  //close the output stream when done
  fileOutput.close();
  if(downloadedSize==totalSize)  
      filepath=file.getPath();

 //catch some possible errors...
 } catch (MalformedURLException e) {
  e.printStackTrace();
 } catch (IOException e) {
  filepath=null;
  e.printStackTrace();
 }
 Log.i("filepath:"," "+filepath) ;


 return filepath;

}
4
répondu GaneshKumar 2012-11-01 09:48:08
InputStream URLcontent = (InputStream) new URL(url).getContent();
Drawable image = Drawable.createFromStream(URLcontent, "your source link");

cela a fonctionné pour moi

3
répondu Yiğit Doğuş Özçelik 2012-08-16 08:01:08

écrire le code en utilisant ASyncTask pour le traitement http.

Bitmap b;
ImageView img;
......
try
    {
        URL url = new URL("http://10.119.120.10:80/img.jpg");
        InputStream is = new BufferedInputStream(url.openStream());
        b = BitmapFactory.decodeStream(is);
    } catch(Exception e){}
......
img.setImageBitmap(b);
1
répondu Rahul Raina 2015-05-15 11:44:40

j'ai le même numéro. Je teste ce code et fonctionne bien. Ce code obtenir L'image de L'URL et mettre dans - "bmpImage "

URL url = new URL("http://your URL");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(60000 /* milliseconds */);
            conn.setConnectTimeout(65000 /* milliseconds */);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.connect();
            int response = conn.getResponseCode();
            //Log.d(TAG, "The response is: " + response);
            is = conn.getInputStream();


            BufferedInputStream bufferedInputStream = new BufferedInputStream(is);

            Bitmap bmpImage = BitmapFactory.decodeStream(bufferedInputStream);
1
répondu Avtandil Kavrelishvili 2015-06-26 11:03:56