如何从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
有效地加载你的图像