Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to set image from url for imageView

I wanna set Image in ImageView using Url for example I have this url

http://www.google.iq/imgres?hl=en&biw=1366&bih=667&tbm=isch&tbnid=HjzjsaANDXVR9M:&imgrefurl=http://www.vectortemplates.com/raster-batman.php&docid=FxbVmggVf--0dM&imgurl=http://www.vectortemplates.com/raster/batman-logo-big.gif&w=2072&h=1225&ei=Zeo_UoSWIMaR0AXl_YHIBg&zoom=1

but there is no option to set url

like image 890
Shanaz K Avatar asked Sep 23 '13 07:09

Shanaz K


People also ask

Which attribute is used to set an image in ImageView?

2. src: src is an attribute used to set a source file or you can say image in your imageview to make your layout attractive.

How do you copy an image URL?

Right-click on the image and select Properties. Find and highlight the URL address to select it. Right-click and select Copy or press Ctrl + C to copy the image. Paste the address into a new email, text editor, or new browser window.


2 Answers

EDIT:

Create a class that extends AsyncTask

public class ImageLoadTask extends AsyncTask<Void, Void, Bitmap> {      private String url;     private ImageView imageView;      public ImageLoadTask(String url, ImageView imageView) {         this.url = url;         this.imageView = imageView;     }      @Override     protected Bitmap doInBackground(Void... params) {         try {             URL urlConnection = new URL(url);             HttpURLConnection connection = (HttpURLConnection) urlConnection                     .openConnection();             connection.setDoInput(true);             connection.connect();             InputStream input = connection.getInputStream();             Bitmap myBitmap = BitmapFactory.decodeStream(input);             return myBitmap;         } catch (Exception e) {             e.printStackTrace();         }         return null;     }      @Override     protected void onPostExecute(Bitmap result) {         super.onPostExecute(result);         imageView.setImageBitmap(result);     }  } 

And call this like new ImageLoadTask(url, imageView).execute();

Direct method:

Use this method and pass your url as string. It returns a bitmap. Set the bitmap to your ImageView.

public static Bitmap getBitmapFromURL(String src) {     try {         Log.e("src",src);         URL url = new URL(src);         HttpURLConnection connection = (HttpURLConnection) url.openConnection();         connection.setDoInput(true);         connection.connect();         InputStream input = connection.getInputStream();         Bitmap myBitmap = BitmapFactory.decodeStream(input);         Log.e("Bitmap","returned");         return myBitmap;     } catch (IOException e) {         e.printStackTrace();         Log.e("Exception",e.getMessage());         return null;     } } 

And then this to ImageView like so:

imageView.setImageBitmap(getBitmapFromURL(url)); 

And dont forget about this permission in maifest.

<uses-permission android:name="android.permission.INTERNET" /> 

NOTE:

Try to call this method from another thread or AsyncTask because we are performing networking operations.

like image 175
kalyan pvs Avatar answered Sep 30 '22 18:09

kalyan pvs


You can also let Square's Picasso library do the heavy lifting:

Picasso     .get()     .load("http://...")     .into(imageView); 

As a bonus, you get caching, transformations, and more.

like image 28
ehnmark Avatar answered Sep 30 '22 19:09

ehnmark