Android में URL द्वारा ImageView कैसे लोड करें? [बन्द है]


530

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


1
यह एक बाहर की कोशिश stackoverflow.com/questions/14332296/...
comeGetSome

2
पिकासो का उपयोग करें ... stackoverflow.com/a/23865531/3535286
chiragkyada

जवाबों:


713

से Android डेवलपर :

// 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" />

39
यह कमाल का है। और सूची में बहुत अधिक होना चाहिए। Asynctask यूआई को फ्रीज किए बिना इसे लोड करने की अनुमति देता है!
काइल क्लेग

3
AsyncTasks एक धारावाहिक निष्पादक का उपयोग करता है, जिसका अर्थ है कि प्रत्येक छवि एक समय में एक लोड करेगी और समानांतर थ्रेड लोडिंग नहीं करेगी।
ब्लंडेल

2
स्रोत लिंक किसी भी अधिक काम नहीं करता है ...
hecvd

10
आपके उदाहरण में इनपुट स्ट्रीम बंद नहीं है। अपनी कोशिश / पकड़ के अंत में सबसे अच्छा किया।
ऋषिदिन

2
क्या यह तरीका अभी भी प्रासंगिक है? मैं OnClick () विधि और इसके उद्देश्य के बारे में थोड़ा उलझन में हूँ
tccpg288

170

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

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

implementation 'com.squareup.picasso:picasso:2.71828'

कोड की सिर्फ एक लाइन!

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

2. सरकना Android के लिए एक छवि लोड हो रहा है और कैशिंग पुस्तकालय चिकनी स्क्रॉल पर ध्यान केंद्रित किया

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

repositories {
  mavenCentral() 
  google()
}

dependencies {
   implementation 'com.github.bumptech.glide:glide:4.7.1'
   annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
}

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

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

3. फ्रेस्को एंड्रॉइड एप्लिकेशन में छवियों को प्रदर्शित करने के लिए एक शक्तिशाली प्रणाली है फ़्रेस्को छवि लोडिंग और डिस्प्ले का ध्यान रखता है, इसलिए आपके पास नहीं है।

फ्रेस्को के साथ शुरुआत करना


2
इसलिए यदि url लोकलहोस्ट है, तो इसका मतलब यह है कि इमेज xampp जैसे डेवलपमेंट सिस्टम लोकल सर्वर डेटाबेस में है, फिर भी इमेज को url = से प्राप्त करने में सक्षम है।
लाठी

2
@blackjack - ऐप से लोकलहोस्ट ही स्मार्टफोन होगा। अपने विकासशील सिस्टम तक पहुँचने के लिए, स्मार्टफ़ोन और आपके डेवलपमेंट सिस्टम को एक ही नेटवर्क में रहना होगा और आपको उस नेटवर्क में अपने डेवलपमेंट सिस्टम के आईपी एड्रेस का उपयोग करना होगा।
15:02

1
क्या बटन पर छवि को लोड करने के लिए पिकासो का उपयोग करना संभव है?
माहदी

1
@chiragkyada मैं इस कोड पिकासो के साथ कोशिश करता हूं। इसके साथ (संदर्भ) .load (url) .into (बटन-अनुक्रम); लेकिन इसके लिए त्रुटि दिखाई देती है: (बटन_व्यू)
mahdi

1
मुझे लगता है कि यह स्वीकृत उत्तर होना चाहिए
उडो

150

आपको सबसे पहले इमेज डाउनलोड करनी होगी

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 में बिटमैप सेट करने के लिए Imageview.setImageBitmap का उपयोग करें


126
आप सही हैं। लेकिन सिर्फ ये 3 लाइनें समस्या को हल करने में मदद करती हैं। URL newurl = नया URL (photo_url_str); mIcon_val = BitmapFactory.decodeStream (newurl.openConnection () .getInputStream ()); profile_photo.setImageBitmap (mIcon_val); उर उत्तर के लिए धन्यवाद।
प्रवीण

2
URL के लिए - java.net.URL आयात करें; निजी स्थिर अंतिम int IO_BUFFER_SIZE = 4 * 1024; आखिर क्या था?
स्टीव

12
यहाँ कोड देखें: stackoverflow.com/questions/3118691/…
OneWorld

@SACPK आपको अपनी टिप्पणी को एक उत्तर के रूप में लिखना चाहिए ताकि वह मतदान कर सके
जिम वालेस

उत्तर मेरे लिए सही था, इसे उत्तर के रूप में पोस्ट करें :)
omnia Mm

71

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

https://github.com/koush/UrlImageViewHelper

UrlImageViewHelper एक URL पर मिलने वाली छवि से एक ImageView भर देगा।

नमूना एक Google छवि खोज करेगा और परिणामों को अतुल्यकालिक रूप से लोड / दिखाएगा।

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


इस पर लाइसेंस क्या है, वैसे?
एहतेश चौधरी १३'१२ को १oud:

@ शौर्येन - अपाचे मैं इसे बाद में नोट कर लूंगा।
kush

1
ऐसा लगता है कि हम इस एक के बजाय उपयोग करने की आवश्यकता github.com/koush/ion UrlImageViewHelper के रूप में GitHub परियोजना के पृष्ठ पर दिखाए गए के रूप में पदावनत किया गया है github.com/koush/UrlImageViewHelper
स्वेतोस्लाव मारिनोव

69

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

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

यह छोटा और महान है, धन्यवाद
Nactus

18
mm .. यह UI थ्रेड से नहीं किया जा सकता है।
गाइ

2
"विकृत URL छूट" के साथ समस्या वाले लोगों के लिए, एक कोशिश / पकड़ में ऊपर की रेखाओं को घेरें। stackoverflow.com/a/24418607/2093088
दंगा वॉट

1
यह AsyncTask का उपयोग करना चाहिए जैसा कि ऊपर वर्णित है
बी-गैंगस्ट्रे जूल

63

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

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

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

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

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

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


यह त्वरित और कॉम्पैक्ट था। अच्छी तरह से मेरी जरूरत है! धन्यवाद!
मार्क मर्फी

मेरे समय की मुहर के रूप में, इसने मेरे लिए काम किया!
कारपेक

25

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

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

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

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");

अच्छा नमूना है, लेकिन मुझे नहीं लगता कि यह धागा सुरक्षित है। मैं इसे एक Async onPostExecute में उपयोग करने का प्रयास कर रहा हूं, हालांकि कॉलबैक को एक अशक्त छवि प्रदान करने से पहले onPostExecute कभी-कभी समाप्त हो सकता है।
जिमी

यह अपने स्वयं के धागे का प्रबंधन करता है। तो क्यों न अपने ASyncTask को यूआई पर वापस कॉल करें जब यह समाप्त हो गया है, तो आप चाहते हैं कि यूआरएल के साथ। इस तरह आपके पास थ्रेड्स थ्रेडिंग थ्रेड्स नहीं हैं।
ब्लंडेल

10
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;
}
}

धन्यवाद एक बहुत, आदर्श उदाहरण है कि मैं के लिए ................, लेकिन गलत विषय के तहत इस यहाँ किया जाना चाहिए था ==> देख रहा था एक स्ट्रिंग से एक imageView की छवि स्थापित करने के लिए कैसे ?

10

नमस्ते, मेरे पास सबसे आसान कोड यही है

    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"/>

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


10

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

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

9

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

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

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

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

मेरे पास अपने प्रोजेक्ट में DefaultHttpClient नहीं है।
Stepan Yakovenko

8

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

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

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

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

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


7

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

Drawable drawable = Drawable.createFromStream((InputStream) new URL("url").getContent(), "src");

imageView.setImageDrawable(drawable);

यहाँ पूरा समारोह है:

public void loadMapPreview () {
    //start a background thread for networking
    new Thread(new Runnable() {
        public void run(){
            try {
                //download the drawable
                final Drawable drawable = Drawable.createFromStream((InputStream) new URL("url").getContent(), "src");
                //edit the view in the UI thread
                imageView.post(new Runnable() {
                    public void run() {
                        imageView.setImageDrawable(drawable);
                    }
                });
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }).start();
}

AndroidManifest.xmlइंटरनेट का उपयोग करने के लिए अपने में निम्नलिखित अनुमतियों को जोड़ना न भूलें ।

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

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


यह वास्तव में अतिसूक्ष्मवाद के लिए बहुत अच्छा है! बस यह ध्यान रखें कि अतिरिक्त में चलना आवश्यक है Threadक्योंकि UI थ्रेड नेटवर्क संचालन के लिए अनुमति नहीं देता है।
क्रिएटिवक्रिएटोरमेयबेनोट

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

5

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

छवि को परिभाषित करें और उसमें छवि लोड करें .....

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


4

अपवाद हैंडलिंग और 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();
}

3
    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;
    } 


3

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

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());

3

किसी भी कंटेनर में इमेज व्यू के लिए कार्य करना, जैसे सूची दृश्य, सामान्य लेआउट

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

+1 पूर्ण, आसान समाधान के लिए धन्यवाद।
पीटह

3

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

यहाँ मैं इस बारे में बताता हूँ कि "AndroidQuery" बाहरी पुस्तकालय को url / सर्वर से लोड छवि के लिए 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.

3

Android Query आपके और बहुत अधिक (जैसे कैश और लोडिंग प्रगति) को संभाल सकता है।

यहां देखिए

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.