Je veux définir Image dans ImageView en utilisant URL par exemple, j'ai cette URL
mais il n'y a pas d'option pour définir l'URL
MODIFIER:
Créez une classe qui s'étend 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);
}
}
Et appelez ceci comme new ImageLoadTask(url, imageView).execute();
Méthode directe:
Utilisez cette méthode et transmettez votre URL en tant que chaîne. Il retourne un bitmap. Définissez le bitmap sur votre 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;
}
}
Et puis ceci à ImageView comme ceci:
imageView.setImageBitmap(getBitmapFromURL(url));
Et n'oubliez pas cette permission dans le manifeste.
<uses-permission Android:name="Android.permission.INTERNET" />
REMARQUE:
Essayez d'appeler cette méthode depuis un autre thread ou AsyncTask car nous effectuons des opérations de mise en réseau.
Vous pouvez également laisser la bibliothèque Picasso de Square se charger de tout:
Picasso
.with(context)
.load("http://...")
.into(imageView);
En prime, vous obtenez la mise en cache, les transformations, etc.
Essayer:
URL newurl = new URL(photo_url_str);
mIcon_val = BitmapFactory.decodeStream(newurl.openConnection() .getInputStream());
profile_photo.setImageBitmap(mIcon_val);
Plus de
1) comment-charger-une-imageview-par-url-dans-Android .
2) Android-faire-une-image-à-une-url-égal-à-imageviews-image
Utiliser Glide bibliothèque:
Glide.with(context)
.load(new File(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
moyen facile d'utiliser Aquery bibliothèque, il permet d'obtenir une image de chargement direct à partir de l'URL
AQuery aq=new AQuery(this); // intsialze aquery
aq.id(R.id.ImageView).image("http://www.vikispot.com/z/images/vikispot/Android-w.png");
Essayez la bibliothèque SimpleDraweeView
<com.facebook.drawee.view.SimpleDraweeView
Android:id="@+id/badge_image"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true" />
et maintenant vous pouvez simplement faire:
final Uri uri = Uri.parse(post.getImageUrl());
si vous faites un RecyclerView et utilisez un adaptateur, ce qui a fonctionné pour moi a été:
@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);
}