如何从imageView的url设置图像

我想在ImageView中使用Url设置图像,例如我有这个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

但是没有选项来设置url

编辑:

创build一个扩展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); } } 

并称之为new ImageLoadTask(url, imageView).execute();

直接方法:

使用此方法并将string作为URL传递。 它返回一个位图。 将位图设置为您的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; } } 

然后这样的ImageView是这样的:

 imageView.setImageBitmap(getBitmapFromURL(url)); 

并且不要忘记这个许可的明显。

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

注意:

尝试从另一个线程或AsyncTask调用此方法,因为我们正在执行networking操作。

你也可以让Square的毕加索图书馆做繁重的工作:

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

作为奖励,你得到caching,转换,等等。

尝试:

 URL newurl = new URL(photo_url_str); mIcon_val = BitmapFactory.decodeStream(newurl.openConnection() .getInputStream()); profile_photo.setImageBitmap(mIcon_val); 

更多来自

1) 如何在android中加载一个image-by-url-load-an-image-by-url-in-android 。

2) android-make-an-image-at-a-url-equal-to-imageviews-image

使用Glide库:

 Glide.with(context) .load(new File(url) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(imageView); 

简单的方法来使用Aquery库它有助于从url直接加载图像

 AQuery aq=new AQuery(this); // intsialze aquery aq.id(R.id.ImageView).image("http://www.vikispot.com/zhttp://img.dovov.comvikispot/android-w.png"); 

试试SimpleDraweeView库

 <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/badge_image" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> 

现在你可以简单地做:

  final Uri uri = Uri.parse(post.getImageUrl()); 

如果您正在制作RecyclerView并使用适配器,那么对我而言有效的是:

 @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); } 

尝试这个 :

 ImageView imageview = (ImageView)findViewById(R.id.your_imageview_id); Bitmap bmp = BitmapFactory.decodeFile(new java.net.URL(your_url).openStream()); imageview.setImageBitmap(bmp); 

你也可以试试这个: Android-Universal-Image-Loader,用于从URL有效地加载你的图像