How to display image from URL on Android

I want to display an image on the screen. The image should come from a URL and not be displayed.

The code is here:

<ImageView 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> 

but it gives an error at compile time.

How to display image from url in android?

+47
android url image
Jun 20 2018-11-11T00:
source share
9 answers

You can directly display an image from the Internet without downloading it. Please check the function below. It will display images from the Internet as an 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; } } 

then set the image to image using the code in your activity.

+88
Jun 20 '11 at 6:27
source share

You can try this, which I will find in another question.

Android, Make the image at a URL equal to the ImageView image

 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(); } 
+13
Apr 24 '13 at 14:09
source share

I tried using this code for me, get the image directly from 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); } } 

use onCreate () method inside

new DownloadImageTask ((ImageView) findViewById (R.id.image)) .execute (" http://scoopak.com/wp-content/uploads/2013/06/free-hd-natural-wallpapers-download-for-pc .jpg ");

+7
Dec 18 '15 at 11:32
source share

For a simple example,
http://www.helloandroid.com/tutorials/how-download-fileimage-url-your-device

You will need to use httpClient and upload the image (cache it if necessary),

the proposed code for displaying images in a list is essentially the same code (check the code in which the image is displayed with url) to display.

Lazy loading images in a ListView

+5
Jun 20 '11 at 6:01
source share

I repeated the image from the url and saved on my SD card using the following code:

 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
Nov 01 '12 at 9:28
source share

You can try it with Picasso, it is really nice and easy. Remember to add permissions to the manifest.

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

You can also watch the tutorial here: Youtube / Github

+4
01 Oct '16 at 8:01
source share
 InputStream URLcontent = (InputStream) new URL(url).getContent(); Drawable image = Drawable.createFromStream(URLcontent, "your source link"); 

it worked for me

+3
Aug 16 '12 at 8:01
source share

Write code using ASyncTask to handle 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
May 15 '15 at 11:44
source share

I have the same problem. I am testing this code and working well. This code Get the image from the URL and enter it - "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
Jun 26 '15 at 11:03
source share



All Articles