I wanna set Image in ImageView using Url for example I have this url
but there is no option to set url
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.
easy way to use Aquery library it helps to get direct load image from url
AQuery aq=new AQuery(this); // intsialze aquery
aq.id(R.id.ImageView).image("http://www.vikispot.com/z/images/vikispot/android-w.png");
Try:
URL newurl = new URL(photo_url_str);
mIcon_val = BitmapFactory.decodeStream(newurl.openConnection() .getInputStream());
profile_photo.setImageBitmap(mIcon_val);
More from
With the latest version of Picasso (2.71828 at the time of writing this answer), the with
method has been deprecated.
So the correct way would be-
Picasso.get().load("https://<image-url>").into(imageView);
where imageView
is the ImageView you want to load your image into.
Try the library SimpleDraweeView
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/badge_image"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
and now you can simply do:
final Uri uri = Uri.parse(post.getImageUrl());
You can use either Picasso
or Glide
.
Picasso.with(context)
.load(your_url)
.into(imageView);
Glide.with(context)
.load(your_url)
.into(imageView);
Try this :
ImageView imageview = (ImageView)findViewById(R.id.your_imageview_id);
Bitmap bmp = BitmapFactory.decodeFile(new java.net.URL(your_url).openStream());
imageview.setImageBitmap(bmp);
You can also try this : Android-Universal-Image-Loader for efficiently loading your image from URL
if you are making a RecyclerView and using an adapter, what worked for me was:
@Override
public void onBindViewHolder(ADAPTERVIEWHOLDER holder, int position) {
MODEL model = LIST.get(position);
holder.TEXTVIEW.setText(service.getTitle());
holder.TEXTVIEW.setText(service.getDesc());
Context context = holder.IMAGEVIEW.getContext();
Picasso.with(context).load(model.getImage()).into(holder.IMAGEVIEW);
}
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.
Using Glide library:
Glide.with(context)
.load(new File(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
Source: Stackoverflow.com