如何从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

  • Android的HttpURLConnection在HEAD请求上抛出EOFException
  • java,android,解析url,重定向到uri
  • searchbuild议使用SUGGEST_COLUMN_ICON_1的url
  • 打开android本地谷歌地图应用程序获取从当前位置开始的方向
  • 使用“url”inputType设置EditText
  • 如何在Android应用程序中解码URL
  • Android应用程序:如何读取自定义urlscheme中的参数?
  • Twitter OAuth如何在Android中工作?
  • 编辑:

    创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操作。

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

     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/z/images/vikispot/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高效地加载你的图像