অ্যান্ড্রয়েডে ইউআরএল দ্বারা কোনও চিত্রভিউ লোড করবেন কীভাবে? [বন্ধ]


530

আপনি কীভাবে ইউআরএল দ্বারা রেফারেন্স প্রাপ্ত কোনও চিত্র ব্যবহার করবেন ImageView?


1
এই এক চেষ্টা stackoverflow.com/questions/14332296/...
comeGetSome

2
পিকাসো ব্যবহার করুন ... stackoverflow.com/a/23865531/3535286
chiragkyada

উত্তর:


713

অ্যান্ড্রয়েড বিকাশকারী থেকে :

// 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
এটা সত্যিই দারুন. এবং তালিকায় অনেক বেশি হওয়া উচিত। অ্যাসিঙ্কটাস এটিকে ইউআই জমাট বাঁধা না দিয়ে লোড করতে দেয়!
কাইল Clegg

3
অ্যাসিঙ্কটাস্কস একটি সিরিয়াল এক্সিকিউটার ব্যবহার করে যার অর্থ প্রতিটি চিত্র একবারে একটি করে লোড করবে এবং সমান্তরাল থ্রেড লোড করবে না।
ব্লুন্ডেল

2
উত্স লিঙ্কটি আর কাজ করে না ...
hecvd

10
ইনপুট স্ট্রিম আপনার উদাহরণে বন্ধ নেই। আপনার চেষ্টা / ধরা শেষ অবধি ব্লক করা ভাল।
রিসাদিনহা

2
এই পদ্ধতিটি কি এখনও প্রাসঙ্গিক?
অনক্লিক

169

1. পিকাসো আপনার অ্যাপ্লিকেশনটিতে ঝামেলা-মুক্ত চিত্র লোড করার অনুমতি দেয় — প্রায়শই কোডের এক লাইনে!

গ্রেডল ব্যবহার করুন:

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

কোডের এক লাইন!

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

২. গ্লাইড মসৃণ স্ক্রোলিংয়ে ফোকাস করে অ্যান্ড্রয়েডের জন্য একটি চিত্র লোডিং এবং ক্যাচিং লাইব্রেরি

গ্রেডল ব্যবহার করুন:

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

৩. ফ্রেসকো অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে চিত্র প্রদর্শন করার জন্য একটি শক্তিশালী সিস্টেম F ফ্রেসকো চিত্র লোডিং এবং প্রদর্শনের যত্ন নেয়, যাতে আপনার প্রয়োজন হয় না।

ফ্রেসকো দিয়ে শুরু করা


2
সুতরাং যদি ইউআরএল লোকালহোস্ট হয়, এর অর্থ চিত্রটি বিকাশকারী সিস্টেমে স্থানীয় সার্ভারের ডাটাবেসে xampp এর মতো রয়েছে, তবুও আমি url = থেকে চিত্রটি পেতে সক্ষম।
ব্ল্যাকজ্যাক

2
@ ব্ল্যাকজ্যাক - অ্যাপ্লিকেশন থেকে লোকালহোস্ট হ'ল স্মার্টফোন। আপনার বিকাশকারী সিস্টেমে অ্যাক্সেস করতে, স্মার্টফোন এবং আপনার বিকাশকারী সিস্টেমটি একই নেটওয়ার্কে থাকতে হবে এবং আপনাকে সেই নেটওয়ার্কে আপনার বিকাশকারী সিস্টেমের আইপি ঠিকানাটি ব্যবহার করতে হবে।
রিডকুলি

1
বোতামে চিত্র লোড করতে পিকাসো ব্যবহার করা সম্ভব?
মাহদী

1
@ চিরাগকিডা আমি এই কোডটি পিকাসো.ইউ (কনটেক্সট) সহ চেষ্টা করি load লোড (ইউআরএল) in তবে এটি এর জন্য ত্রুটি দেখায়: এর মধ্যে (বোতাম_দর্শন)
মাহদি

1
আমি মনে করি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত
Udo

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

তারপরে ইমেজভিউতে বিটম্যাপ সেট করতে ইমেজভিউ.সেটেমেজবাইটম্যাপটি ব্যবহার করুন


126
তোমার অধিকার R. তবে কেবল এই 3 টি লাইনই সমস্যাটি সমাধান করতে সহায়তা করে। URL newurl = নতুন ইউআরএল (photo_url_str); mIcon_val = বিটম্যাপফ্যাক্টরি.ডেকোডস্ট্রিম (newurl.openConnection () .getInputStream ()); profile_photo.setImageBitmap (mIcon_val); তোমার জবাবের জন্য ধন্যবাদ
প্রবীণ

2
URL- এর জন্য java.net. URL আমদানি করুন; প্রাইভেট স্ট্যাটিক ফাইনাল ইন IO_BUFFER_SIZE = 4 * 1024; শেষটি কি ছিল?
স্টিভ 12

12
কোডটি এখানে দেখুন: স্ট্যাকওভারফ্লো
প্রশ্নগুলি

@ স্যাকপেকে আপনার উত্তর হিসাবে মন্তব্যটি লিখতে হবে যাতে এটি ভোট পেতে পারে
জিম ওয়ালেস

উত্তরটি আমার জন্য সঠিক ছিল, এটি একটি উত্তর হিসাবে পোস্ট করুন :)
ওমনিয়া এমএম

71

এটি পরিচালনা করার জন্য আমি একটি ক্লাস লিখেছিলাম, কারণ এটি আমার বিভিন্ন প্রকল্পে বারবার প্রয়োজন বলে মনে হচ্ছে:

https://github.com/koush/UrlImageViewHelper

URLIVVHHelper একটি URL- এ পাওয়া একটি চিত্রের সাথে একটি চিত্র ভিউ পূরণ করবে।

নমুনাটি একটি গুগল চিত্র অনুসন্ধান করবে এবং ফলাফলগুলি সংযোজনীয়ভাবে লোড / প্রদর্শন করবে।

আরলিগেমভিউহেল্পার সমস্ত চিত্র স্বয়ংক্রিয়ভাবে ডাউনলোড, সংরক্ষণ এবং ক্যাশে সমস্ত চিত্র বিটম্যাপড্রেবেবলকে ইউআরএল করবে। সদৃশ ইউআরএল দু'বার মেমরিতে লোড হবে না। বিটম্যাপ মেমরিটি একটি দুর্বল রেফারেন্স হ্যাশ টেবিল ব্যবহার করে পরিচালনা করা হয়, সুতরাং যত তাড়াতাড়ি চিত্রটি আপনার দ্বারা আর ব্যবহার করা হবে না, এটি স্বয়ংক্রিয়ভাবে আবর্জনা সংগ্রহ করা হবে।


এভাবে লাইসেন্স কী?
এহতেশ চৌধুরী

@ শুরান - অ্যাপাচি আমি পরে এটি একটি নোট করব।
কুশ

1
মনে হচ্ছে এটির পরিবর্তে আমাদের এটির একটি ব্যবহার করা দরকার gritub.com/koush/ion হিসাবে urlImageViewHelper গিথুব প্রকল্পের পৃষ্ঠায় github.com/koush/UrlImageViewHelper তে দেখানো হয়েছে বলে প্রত্যাখ্যান করা হয়েছে ।
স্বেটোস্লাভ মেরিনভ

69

যাইহোক লোকেরা আমার মন্তব্যটিকে উত্তর হিসাবে পোস্ট করতে বলে। আমি পোস্ট করছি

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

এটি সংক্ষিপ্ত এবং দুর্দান্ত, ধন্যবাদ
ন্যাকটাস

18
মিমি .. যদিও এটি ইউআই থ্রেড থেকে করা যায় না।
গাই

2
"ত্রুটিযুক্ত ইউআরএল এক্সপিশন" নিয়ে সমস্যা থাকা লোকদের জন্য, চেষ্টা / ধরাতে উপরের লাইনগুলি ঘিরে। stackoverflow.com/a/24418607/2093088
দাঙ্গা চলে

1
এটি উপরে বর্ণিত হিসাবে AsyncTask ব্যবহার করে করা উচিত
বি-গাংস্টেরআর

63

উপরের স্বীকৃত উত্তরটি দুর্দান্ত যদি আপনি একটি বোতাম ক্লিকের উপর ভিত্তি করে চিত্রটি লোড করছেন তবে আপনি যদি এটি কোনও নতুন ক্রিয়াকলাপে করছেন তবে এটি ইউআই স্থির করে এক বা দুইয়ের জন্য। আশেপাশে খোঁজ পেয়েছি যে একটি সাধারণ অ্যাসিনটাস্ক এই সমস্যাটি দূর করেছে eliminated

অ্যাসিঙ্কটাস ব্যবহার করতে আপনার ক্রিয়াকলাপ শেষে এই শ্রেণিটি যুক্ত করুন:

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

ফলাফলটি দ্রুত লোড হওয়া ক্রিয়াকলাপ এবং একটি চিত্রদর্শন যা ব্যবহারকারীর নেটওয়ার্কের গতির উপর নির্ভর করে পরে একটি বিভাজন প্রদর্শন করে।


এটি ছিল দ্রুত এবং কমপ্যাক্ট। আমার চাহিদা সুন্দরভাবে পূরণ! ধন্যবাদ!
মার্ক মারফি

আমার সময়ের স্ট্যাম্প হিসাবে, এটি আমার পক্ষে কাজ করেছিল!
কার্প্ক

25

ইউআরএল থেকে কোনও চিত্র লোড করার জন্য আপনি এই লোডিং ইমেজভিউ ভিউটিও ব্যবহার করতে পারেন:

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

একবার আপনি এই লিঙ্কটি থেকে ক্লাস ফাইল যুক্ত করলে আপনি একটি url চিত্রের ভিউটি ইনস্ট্যান্ট করতে পারেন:

এক্সএমএলে:

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

দুর্দান্ত নমুনা, তবে আমি বিশ্বাস করি না এটি থ্রেড নিরাপদ। আমি এটি পোস্টপ্যাক্সেকুটে একটি এ্যাসিঙ্কটিতে ব্যবহার করার চেষ্টা করছি, তবে পোস্টপেক্সেকিউট কখনও কখনও কলব্যাকটি শূন্য চিত্রের রেন্ডারিংয়ের আগে শেষ হতে পারে।
জিমি

এটি নিজের থ্রেড পরিচালনা করে। আপনি যে url টি চান তা শেষ হয়ে গেলে কেন আপনার ASYncTask কলটি UI এ ফিরে আসবে না। এইভাবে আপনার থ্রেড স্প্যানিং থ্রেড নেই।
ব্লুন্ডেল

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

অনেক ধন্যবাদ, আমি যে নিখুঁত উদাহরণটি সন্ধান করছিলাম ................, কিন্তু ভুল টপিকের নীচে এটি এখানে হওয়া উচিত ছিল ==> কোনও স্ট্রিং থেকে কীভাবে একটি চিত্রভিউয়ের চিত্র সেট করা যায়? ?
ভেনমভেন্ডর

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

আমার মতে এই জাতীয় কাজের জন্য সেরা আধুনিক গ্রন্থাগার হ'ল স্কয়ার বাই পিকাসো । এটি ওয়ান-লাইনার সহ ইউআরএল দ্বারা একটি চিত্র ভিউতে কোনও চিত্র লোড করতে দেয়:

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

9

আমি সম্প্রতি একটি থ্রেড পাওয়া যায় এখানে আমি ইমেজ সঙ্গে একটি listview জন্য একটি অনুরূপ জিনিস যা করতে হবে, কিন্তু নীতি, সহজ হিসাবে আপনি সেখানে প্রদর্শণ (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");

আমার প্রোজেক্টে আমার ডিফল্ট এইচটিপিপ্লায়েন্ট নেই।
স্টেপান ইয়াকোভেনকো

8

এখানে প্রচুর ভাল তথ্য ... আমি সম্প্রতি স্মার্টমিজভিউ ভিউ নামে একটি ক্লাস পেয়েছি যা দেখে মনে হচ্ছে এটি এখনও পর্যন্ত খুব ভাল কাজ করছে। অন্তর্ভুক্ত এবং ব্যবহার করা খুব সহজ।

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

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

আপডেট : আমি এই সম্পর্কে একটি ব্লগ পোস্ট লেখা শেষ , সুতরাং স্মার্টআইজামভিউ ব্যবহার করার জন্য সাহায্যের জন্য এটি পরীক্ষা করে দেখুন।

2 তম আপডেট : আমি এখন সর্বদা এটির জন্য পিকাসো ব্যবহার করি (উপরে দেখুন) এবং এটির সুপারিশ করছি। :)


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কারণ ইউআই থ্রেডটি নেটওয়ার্ক ক্রিয়াকলাপের অনুমতি দেয় না।
ক্রিয়েটিভ ক্রিয়েটোরমায়াবেনট

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

ব্যতিক্রম হ্যান্ডলিং এবং অ্যাসিঙ্ক কার্য সহ সংস্করণ:

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" লাইব্রেরিটি ডাউনলোড করুন
  • প্রকল্পের লাইব ফোল্ডারে এই জারটি অনুলিপি করুন / আটকান এবং প্রকল্পের বিল্ড-পাথটিতে এই লাইব্রেরি যুক্ত করুন
  • এখন আমি এটি কীভাবে ব্যবহার করব তা ডেমো দেখায়।

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

অ্যান্ড্রয়েড ক্যোয়ারী এটি আপনার এবং আরও অনেক কিছু (যেমন ক্যাশে এবং লোডিং প্রগতির মতো) পরিচালনা করতে পারে।

এখানে একবার দেখুন ।

আমি মনে করি সেরা পন্থা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.