web-dev-qa-db-ja.com

Universal Image Loaderの使い方

サムネイルと、カスタムのTextによって設定されるListViewAdapterを読み込む必要があるという要件があります。サムネイルはキャッシュメモリに保存する必要があります。これは、ユニバーサルイメージローダーを使用しているためです。ただし、その実装と、ListViewからURL内のイメージをロードするための私の要件に従って使用する方法については、かなり混乱しています。良い実装でのいくつかの方法を教えてください。

12
Nitin Bathija

以下のコード行をアダプターのgetView()メソッドに書き込みます。ここで、imageUrls [position]は画像URLの配列で、holder.imageは画像ビューです。

imageLoader.displayImage(imageUrls[position], holder.image, null);

以下のコード行をアダプターコンストラクターに記述します。

ImageLoader imageLoader=new  ImageLoader(activity.getApplicationContext());

それはあなたの問題を解決します、そしてそれに関して何か質問があれば教えてください。

ユニバーサルイメージローダーの例の完全なソースコードについては、以下のリンクを参照してください。

Android-ユニバーサルイメージローダー

15
Dipak Keshariya

アダプタのoncreate()定義で

 ImageLoader imageLoader=new  ImageLoader(activity.getApplicationContext());

そして、それをgetView()メソッドで使用します。

imageLoader.DisplayImage(//your image url, //your imageView);
8
user1787773
8
Vishnu Haridas

これにより、ユニバーサルイメージローダーを使用してimageurlを読み込むのに役立ち、imageurlのステータスが読み込み開始、完了、または失敗になり、リクエストはキャンセルステータスも提供されます。

 public void ImageLoaderListener(String url){

        imageLoader.loadImage(url,new ImageLoadingListener(){
            @Override
            public void onLoadingStarted(String imageUri, View view) {
                Log.e("tag", "onLoadingStarted");
            }

            @Override
            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                Log.e("tag", "onLoadingFailed");
            }
            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                Log.e("tag", "onLoadingComplete");
                imageView.setImageBitmap(loadedImage);
            }
            @Override
            public void onLoadingCancelled(String imageUri, View view) {
                Log.e("tag", "onLoadingCancelled");
            }
        });
    }

画像をキャッシュしたい場合は、以下の関数を追加してください...しかし、非常に高度なので、作成時に開始します.

 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
            .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
            .build();

    imageLoader = ImageLoader.getInstance();

    if (!imageLoader.isInited()) {
        imageLoader.init(config);
    }
    defaultOptions = new DisplayImageOptions.Builder()
            .cacheInMemory(true)
            .cacheOnDisc(true)
            .build();

次に、そのImageLoadingListener()関数を追加します...

public void ImageLoaderListener(String url){
  imageLoader.loadImage(url, defaultOptions, new ImageLoadingListener() {
1
Mathan Chinna
public class CategoryModel 
{
        String CatId;
        String CatName;
        String Image;
        String Price;
        Bitmap ImgSrc;
        CategoryAdapter Ma;
        public CategoryModel()
        {
        }
        public CategoryModel(String catid,String catname,String image,String price)
        {
            this.CatId = catid;
            this.CatName = catname;
            this.Image = image;
            this.Price = price;
        }
        public CategoryModel(String catname,String image,String price)
        {
            this.CatName = catname;
            this.Image = image;
            this.Price = price;
        }
        public void setCatId(String catid)
        {
            this.CatId =catid;
        }
        public String getCatId()
        {
            return this.CatId;
        }
        public void setCatName(String catname)
        {
            this.CatName=catname;
        }
        public String getCatName()
        {
            return this.CatName;
        }
        public void setImage(String image)
        {
            this.Image=image;
        }
        public String getImage()
        {
            return this.Image;
        }
        public void setPrice(String price)
        {
            this.Price=price;
        }
        public String getPrice()
        {
            return this.Price;
        }
        public Bitmap getImagesrc()
        {
            return this.ImgSrc;
        }
        public void setAdapter(CategoryAdapter adf)
        {
            this.Ma = adf;
        }
        public CategoryAdapter getAdapter()
        {
            return this.Ma;
        }

        public void LoadImage(CategoryAdapter adap)
        {
            this.Ma = adap;
            if(Image != null && !Image.equals(""))
            {
                new ImageLoader().execute(new String[]{ Image });
            }
        }
        public static Bitmap getBitmapUrl(String src)
        {
            try
            {
                URL url = new URL(src);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setDoInput(true);
                connection.connect();
                InputStream input = connection.getInputStream();
                Bitmap mybitmap = BitmapFactory.decodeStream(input);
                connection.disconnect();
                return mybitmap;
            }
            catch (Exception e) {
                return null;
            }
        }
        private class ImageLoader extends AsyncTask<String, String, Bitmap>
        {
            @Override
            protected void onPreExecute()
            {
            }
            @Override
            protected Bitmap doInBackground(String... params) {
                try
                {
                    Bitmap b = getBitmapUrl(params[0]);
                    return b;
                }
                catch (Exception e)
                {
                    Log.e("Excep", e.toString());
                    return null;
                }
            }
            @Override
            protected void onPostExecute(Bitmap res)
            {
                if(res!=null)
                {
                    ImgSrc = res;
                    if(Ma!=null)
                    {
                        Ma.notifyDataSetChanged();
                    }
                }
                else
                {
                    Log.e("Error", "Image not Loading");
                }
            }
        }
}
0