दिलचस्प पोस्ट
Regex का उपयोग कर एक सबस्ट्रिंग निकालने का तरीका जावा में द्विदिश बहु-मूल्यवान मानचित्र नेमस्पेस + फ़ंक्शंस बनाम स्थिर तरीके से एक क्लास पर पासवर्ड में संरक्षित नेटवर्क ड्राइव को विंडोज में सी # में? आप POST क्रिया का उपयोग करके किसी पृष्ठ को कैसे पुनर्निर्देशित करते हैं? विधि चेनिंग – क्यों यह एक अच्छा अभ्यास है, या नहीं? JavaScript के साथ यूआरएल हैश / टुकड़ा पहचानकर्ता को पार्स करना क्या VBA फ़ंक्शंस के भीतर कुछ भी नहीं करने के लिए ऑब्जेक्ट सेट करने की आवश्यकता है मैक्रो वैल्यू का स्ट्रिंगफिकेशन पायथन से सी / सी ++ कॉलिंग? PHP में एक छवि आउटपुट करें कैसे int को कन्वर्ट करने के लिए? एट्रिब्यूट्स पर XSLT 3-स्तरीय ग्रुपिंग लिनक्स घड़ी पर मिलीसेकंड का समय प्राप्त करने के लिए सी + + ठीक से काम नहीं करता स्क्रॉल के लिए जावास्क्रिप्ट विंडो X / Y स्थिति प्राप्त करें

एंड्रॉइड में यूआरएल के जरिये इमेजिव्यू लोड करना है?

एक छवि ImageView में यूआरएल द्वारा संदर्भित एक छवि का आप कैसे उपयोग करते हैं?

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड में यूआरएल के जरिये इमेजिव्यू लोड करना है?"

एंड्रॉइड डेवलपर से :

 // show The Image in a ImageView new DownloadImageTask((ImageView) findViewById(R.id.imageView1)) .execute("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"); public void onClick(View v) { startActivity(new Intent(this, IndexActivity.class)); finish(); } private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { ImageView bmImage; public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage; } protected Bitmap doInBackground(String... urls) { String urldisplay = urls[0]; Bitmap mIcon11 = null; try { InputStream in = new java.net.URL(urldisplay).openStream(); mIcon11 = BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } return mIcon11; } protected void onPostExecute(Bitmap result) { bmImage.setImageBitmap(result); } } 

सुनिश्चित करें कि आपके पास इंटरनेट एक्सेस करने के लिए आपके AndroidManifest.xml में निर्धारित निम्न अनुमतियां हैं।

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

आपको सबसे पहले छवि को डाउनलोड करना होगा

 public static Bitmap loadBitmap(String url) { Bitmap bitmap = null; InputStream in = null; BufferedOutputStream out = null; try { in = new BufferedInputStream(new URL(url).openStream(), IO_BUFFER_SIZE); final ByteArrayOutputStream dataStream = new ByteArrayOutputStream(); out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE); copy(in, out); out.flush(); final byte[] data = dataStream.toByteArray(); BitmapFactory.Options options = new BitmapFactory.Options(); //options.inSampleSize = 1; bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,options); } catch (IOException e) { Log.e(TAG, "Could not load Bitmap from: " + url); } finally { closeStream(in); closeStream(out); } return bitmap; } 

फिर छवि दृश्य में बिटमैप सेट करने के लिए Imageview.setImageBitmap का उपयोग करें

1. पिकासो अपने आवेदन में परेशानी-मुक्त छवि लोडिंग की अनुमति देता है-अक्सर कोड की एक पंक्ति में!

ग्रेड का प्रयोग करें:

 compile 'com.squareup.picasso:picasso:2.5.2' 

बस कोड की एक पंक्ति!

 Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

एंड्रॉइड पर छवि लोड करने के कई आम नुकसान पिकासो द्वारा स्वचालित रूप से नियंत्रित किए जाते हैं

  • एडेप्टर में छवि दृश्य रीसाइक्लिंग और रद्दीकरण को डाउनलोड करना।
  • न्यूनतम स्मृति उपयोग के साथ जटिल छवि परिवर्तन
  • स्वचालित स्मृति और डिस्क कैशिंग

यहां छवि विवरण दर्ज करें

2. चिकना स्क्रॉलिंग पर केंद्रित एंड्रॉइड के लिए एक छवि लोडिंग और कैशिंग लाइब्रेरी ग्लाइड करें

ग्रेड का प्रयोग करें:

 repositories { mavenCentral() // jcenter() works as well because it pulls from Maven Central } dependencies { compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.android.support:support-v4:19.1.0' } 

// सरल दृश्य के लिए:

 @Override public void onCreate(Bundle savedInstanceState) { ... ImageView imageView = (ImageView) findViewById(R.id.my_image_view); Glide.with(this).load("http://i.imgur.com/DvpvklR.png").into(imageView); } 

// एक साधारण छवि सूची के लिए:

  @Override public View getView(int position, View recycled, ViewGroup container) { final ImageView myImageView; if (recycled == null) { myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false); } else { myImageView = (ImageView) recycled; } String url = myUrls.get(position); Glide .with(myFragment) .load(url) .centerCrop() .placeholder(R.drawable.loading_spinner) .crossFade() .into(myImageView); return myImageView; } 

मैंने इसे संभालने के लिए एक क्लास लिखा, क्योंकि यह मेरे विभिन्न परियोजनाओं में एक आवर्ती आवश्यकता है:

https://github.com/koush/UrlImageViewHelper

UrlImageViewHelper एक छवि के साथ एक छवि भर जाएगा जो एक URL पर पाया जाता है

यह नमूना एक Google छवि खोज करेगा और परिणाम को अकालिक रूप से प्रदर्शित करेगा I

UrlImageViewHelper स्वत: डाउनलोड, सहेज, और सभी छवि यूआरएल को बिटमैपड्रेबल्स कैश करेगा। डुप्लिकेट यूआरएल को स्मृति में दो बार लोड नहीं किया जाएगा। बिटमैप मेमोरी को एक कमजोर संदर्भ हैश तालिका का उपयोग करके प्रबंधित किया जाता है, इसलिए जैसे ही छवि अब आपके द्वारा उपयोग नहीं की जाती है, यह कचरा स्वचालित रूप से एकत्र की जाएगी

वैसे भी लोग मेरी टिप्पणी को जवाब के रूप में पोस्ट करने के लिए कहते हैं। मैं पोस्ट कर रहा हूँ

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

धन्यवाद।

उपरोक्त स्वीकार्य उत्तर बहुत अच्छा है यदि आप बटन क्लिक के आधार पर छवि लोड कर रहे हैं, हालांकि यदि आप इसे एक नई गतिविधि में कर रहे हैं तो यह दूसरी या दो के लिए यूआई को फ्रीज कर देगा। चारों ओर देख रहा है मुझे पता चला कि एक सरल asynctask इस समस्या का सफाया कर दिया।

एक asynctask का उपयोग करने के लिए अपनी गतिविधि के अंत में इस वर्ग जोड़ें:

 private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { ImageView bmImage; public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage; } protected Bitmap doInBackground(String... urls) { String urldisplay = urls[0]; Bitmap mIcon11 = null; try { InputStream in = new java.net.URL(urldisplay).openStream(); mIcon11 = BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } return mIcon11; } protected void onPostExecute(Bitmap result) { bmImage.setImageBitmap(result); } } 

और अपने ऑन क्रेट () विधि से कॉल करें:

 new DownloadImageTask((ImageView) findViewById(R.id.imageView1)) .execute(MY_URL_STRING); 

नतीजा एक त्वरित लोड की गई गतिविधि और एक छविदृश्य है जो उपयोगकर्ता के नेटवर्क की गति के आधार पर बाद में दूसरे भाग को दिखाता है।

आप url से एक छवि लोड करने के लिए इस लोडिंग इमेज दृश्य दृश्य का उपयोग भी कर सकते हैं:

http://blog.blundellapps.com/imageview-with-loading-spinner/

एक बार जब आप उस लिंक से क्लास फ़ाइल जोड़ दी तो आप यूआरएल छवि दृश्य को इन्स्तांत कर सकते हैं:

xml में:

 <com.blundell.tut.LoaderImageView android:id="@+id/loaderImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" image="http://developer.android.com/images/dialog_buttons.png" /> 

कोड में:

 final LoaderImageView image = new LoaderImageView(this, "http://developer.android.com/images/dialog_buttons.png"); 

और इसका उपयोग करके इसे अपडेट करें:

 image.setImageDrawable("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"); 
 public class LoadWebImg extends Activity { String image_URL= "http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView bmImage = (ImageView)findViewById(R.id.image); BitmapFactory.Options bmOptions; bmOptions = new BitmapFactory.Options(); bmOptions.inSampleSize = 1; Bitmap bm = LoadImage(image_URL, bmOptions); bmImage.setImageBitmap(bm); } private Bitmap LoadImage(String URL, BitmapFactory.Options options) { Bitmap bitmap = null; InputStream in = null; try { in = OpenHttpConnection(URL); bitmap = BitmapFactory.decodeStream(in, null, options); in.close(); } catch (IOException e1) { } return bitmap; } private InputStream OpenHttpConnection(String strURL) throws IOException{ InputStream inputStream = null; URL url = new URL(strURL); URLConnection conn = url.openConnection(); try{ HttpURLConnection httpConn = (HttpURLConnection)conn; httpConn.setRequestMethod("GET"); httpConn.connect(); if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { inputStream = httpConn.getInputStream(); } } catch (Exception ex) { } return inputStream; } } 

मैंने हाल ही में एक धागा पाया है , जैसा कि मुझे छवियों के साथ एक सूची दृश्य के लिए एक समान कार्य करना है, लेकिन सिद्धांत सरल है, जैसा कि आप यहां दिखाए गए पहले नमूना वर्ग में पढ़ सकते हैं (जेलेडेव द्वारा)। आपको छवि का इनपुट स्ट्रीम (वेब ​​से) मिलता है

 private InputStream fetch(String urlString) throws MalformedURLException, IOException { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet request = new HttpGet(urlString); HttpResponse response = httpClient.execute(request); return response.getEntity().getContent(); } 

फिर आप चित्र को ड्रायबल के रूप में संग्रहीत करते हैं और आप इसे ImageView (setImageDrawable के जरिए) पास कर सकते हैं। फिर से ऊपरी कोड स्निपेट से पूरे धागा पर एक नज़र डालें

 InputStream is = fetch(urlString); Drawable drawable = Drawable.createFromStream(is, "src"); 

हाय मैं सबसे आसान कोड है कोशिश यह

  public class ImageFromUrlExample extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView imgView =(ImageView)findViewById(R.id.ImageView01); Drawable drawable = LoadImageFromWebOperations("http://www.androidpeople.com/wp-content/uploads/2010/03/android.png"); imgView.setImageDrawable(drawable); } private Drawable LoadImageFromWebOperations(String url) { try{ InputStream is = (InputStream) new URL(url).getContent(); Drawable d = Drawable.createFromStream(is, "src name"); return d; }catch (Exception e) { System.out.println("Exc="+e); return null; } } } 

main.xml

  <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:id="@+id/ImageView01" android:layout_height="wrap_content" android:layout_width="wrap_content"/> 

इसे इस्तेमाल करे

यहां पर बहुत अच्छी जानकारी … मुझे हाल ही में एक स्मार्ट इमेज व्हीव नामक क्लास मिला है जो वास्तव में अभी तक काम कर रहे हैं। शामिल करना और उपयोग करना बहुत आसान है

http://loopj.com/android-smart-image-view/

https://github.com/loopj/android-smart-image-view

अद्यतन : मैं इस बारे में एक ब्लॉग पोस्ट लिखना समाप्त कर दिया, इसलिए SmartImageView का उपयोग करने पर सहायता के लिए इसे बाहर की जाँच करें।

2 अपडेट करें : अब मैं हमेशा पिकासो को इसके लिए उपयोग करता हूं (ऊपर देखें) और अत्यधिक अनुशंसा करते हैं। 🙂

 imageView.setImageBitmap(BitmapFactory.decodeStream(imageUrl.openStream()));//try/catch IOException and MalformedURLException outside 

मेरी राय के लिए इस तरह के कार्य के लिए सबसे अच्छा आधुनिक पुस्तकालय पिकासो द्वारा स्क्वायर है यह एक छवि को यूआरएल द्वारा एक लाइनर के साथ लोड करने की अनुमति देता है:

 Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

यह आपकी मदद करेगा …

छविदृश्य को परिभाषित करें और उसमें छवि लोड करें …..

 Imageview i = (ImageView) vv.findViewById(R.id.img_country); i.setImageBitmap(DownloadFullFromUrl(url)); 

फिर इस विधि को परिभाषित करें:

  public Bitmap DownloadFullFromUrl(String imageFullURL) { Bitmap bm = null; try { URL url = new URL(imageFullURL); URLConnection ucon = url.openConnection(); InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int current = 0; while ((current = bis.read()) != -1) { baf.append((byte) current); } bm = BitmapFactory.decodeByteArray(baf.toByteArray(), 0, baf.toByteArray().length); } catch (IOException e) { Log.d("ImageManager", "Error: " + e); } return bm; } 
  private Bitmap getImageBitmap(String url) { Bitmap bm = null; try { URL aURL = new URL(url); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); } catch (IOException e) { Log.e(TAG, "Error getting bitmap", e); } return bm; } 

ऐसा करने के लिए एक सरल और साफ तरीका ओपन सोर्स लाइब्रेरी प्राइम का उपयोग करना है।

  String img_url= //url of the image URL url=new URL(img_url); Bitmap bmp; bmp=BitmapFactory.decodeStream(url.openConnection().getInputStream()); ImageView iv=(ImageView)findviewById(R.id.imageview); iv.setImageBitmap(bmp); 

इस कोड का परीक्षण किया गया है, यह पूरी तरह से काम कर रहा है

 URL req = new URL( "http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png" ); Bitmap mIcon_val = BitmapFactory.decodeStream(req.openConnection() .getInputStream()); 

किसी भी कंटेनर में imageView के लिए कार्य करना, जैसे listview ग्रिड दृश्य, सामान्य लेआउट

  private class LoadImagefromUrl extends AsyncTask< Object, Void, Bitmap > { ImageView ivPreview = null; @Override protected Bitmap doInBackground( Object... params ) { this.ivPreview = (ImageView) params[0]; String url = (String) params[1]; System.out.println(url); return loadBitmap( url ); } @Override protected void onPostExecute( Bitmap result ) { super.onPostExecute( result ); ivPreview.setImageBitmap( result ); } } public Bitmap loadBitmap( String url ) { URL newurl = null; Bitmap bitmap = null; try { newurl = new URL( url ); bitmap = BitmapFactory.decodeStream( newurl.openConnection( ).getInputStream( ) ); } catch ( MalformedURLException e ) { e.printStackTrace( ); } catch ( IOException e ) { e.printStackTrace( ); } return bitmap; } /** Usage **/ new LoadImagefromUrl( ).execute( imageView, url ); 

अपवाद हैंडलिंग और async कार्य के साथ संस्करण:

 AsyncTask<URL, Void, Boolean> asyncTask = new AsyncTask<URL, Void, Boolean>() { public Bitmap mIcon_val; public IOException error; @Override protected Boolean doInBackground(URL... params) { try { mIcon_val = BitmapFactory.decodeStream(params[0].openConnection().getInputStream()); } catch (IOException e) { this.error = e; return false; } return true; } @Override protected void onPostExecute(Boolean success) { super.onPostExecute(success); if (success) { image.setImageBitmap(mIcon_val); } else { image.setImageBitmap(defaultImage); } } }; try { URL url = new URL(url); asyncTask.execute(url); } catch (MalformedURLException e) { e.printStackTrace(); } 

इस तरह से प्रयास करें, आशा है कि यह आपकी समस्या को हल करने में आपकी सहायता करेगा।

यहां मैं समझता हूं कि "एंड्रॉइड कनेक्टिविटी" का इस्तेमाल यूआरएल / सर्वर से लोड छवि के लिए asyncTask तरीके से कैश लोडेड इमेज में डिवाइस फ़ाइल या कैश क्षेत्र के लिए बाहरी लाइब्रेरी कैसे करें।

  • यहां से "AndroidQuery" लाइब्रेरी डाउनलोड करें
  • लीब फ़ोल्डर को प्रोजेक्ट करने के लिए इस जार की प्रतिलिपि बनाएं / पेस्ट करें और बिल्ड-पथ को प्रोजेक्ट करने के लिए इस लाइब्रेरी को जोड़ें
  • अब मैं इसका उपयोग कैसे करें इसका डेमो दिखाता हूँ।

activity_main.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/imageFromUrl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true"/> <ProgressBar android:id="@+id/pbrLoadImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> </FrameLayout> </LinearLayout> 

MainActivity.java

 public class MainActivity extends Activity { private AQuery aQuery; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); aQuery = new AQuery(this); aQuery.id(R.id.imageFromUrl).progress(R.id.pbrLoadImage).image("http://itechthereforeiam.com/wp-content/uploads/2013/11/android-gone-packing.jpg",true,true); } } Note : Here I just implemented common method to load image from url/server but you can use various types of method which can be provided by "AndroidQuery"to load your image easily. 

एंड्रॉइड क्वायर आपके और अधिक के लिए इसे संभाल सकता है (जैसे कैश और लोडिंग प्रगति)

यहाँ पर एक नज़र डालें

मुझे लगता है कि सबसे अच्छा तरीका है

यह एक देर से उत्तर है, जैसा कि AsyncTask ऊपर सुझाव दिया जाएगा और थोड़ा सा googling के बाद मैं इस समस्या के लिए एक और रास्ता मिल गया।

 my_image_view.setImageDrawable(Drawable.createFromStream((InputStream)new URL(<String_url>).getContent(), "src")); 

मैंने खुद को यह कोशिश की और मुझे अभी तक कोई समस्या नहीं हुई है।