2013-10-04 64 views
0

有沒有人使用過Volley庫? 我想通過抽排獲取位圖,但我不知道如何將自定義參數添加到請求中。如何使用volley以自定義參數獲取位圖

這裏是我的代碼:

RequestQueue mRequestQueue = Volley.newRequestQueue(this); 
ImageLoader imageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache(  BitmapLruCache.getDefaultLruCacheSize())); 
imageLoader.get(IMAGE_URL,ImageLoader.getImageListener(imageView, R.drawable.ic_launcher, R.drawable.ic_error)); 

誰能告訴我如何添加自定義的PARAMS這個電話?

回答

0

基本上排球提供兩種方法來請求圖像

實施例:

ImageRequest imgRequest = new ImageRequest(<URL>, new Response.Listener<Bitmap>() { 
     @Override 
     public void onResponse(Bitmap response) { 
      mImageView.setImageBitmap(response); 
     } 
    }, 0, 0, Bitmap.Config.ARGB_8888, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      mImageView.setImageResource(R.drawable.error); 
     } 
    }); 
mVolleyQueue.add(imgRequest); 

ImageDownloader

//正開始ImageDownloader

int max_cache_size = 1000000; 
mImageLoader = new ImageLoader(mVolleyQueue, new DiskBitmapCache(getCacheDir(),max_cache_size)); 

(或) 的MemoryCache總是比快DiskCache。自己檢查一下。 mImageLoader = new ImageLoader(mVolleyQueue,new BitmapCache(max_cache_size));

mImageLoader.get(<URL>, 
     ImageLoader.getImageListener(mImageView, 
        R.drawable.flickr, 
        android.R.drawable.ic_dialog_alert), 
        //You can optional specify width & height of the bitmap to be scaled down when the image is downloaded. 
        50,50); 

NetworkImageView

mNetworkImageView.setImageUrl(testUrlToDownloadImage1, mImageLoader); 

如果你想要更多的控制和選項,您可以嘗試UniversalImagerLoader

查看更多在這裏:https://github.com/nostra13/Android-Universal-Image-Loader

配置

「配置」構建器中的所有選項都是可選的。只使用你真正想要自定義的人。 查看每個選項的Java文檔中config選項的默認值。

// DON'T COPY THIS CODE TO YOUR PROJECT! This is just example of ALL options using. 
// See the sample project how to use ImageLoader correctly. 
File cacheDir = StorageUtils.getCacheDirectory(context); 
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
     .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 
     .diskCacheExtraOptions(480, 800, null) 
     .taskExecutor(...) 
     .taskExecutorForCachedImages(...) 
     .threadPoolSize(3) // default 
     .threadPriority(Thread.NORM_PRIORITY - 1) // default 
     .tasksProcessingOrder(QueueProcessingType.FIFO) // default 
     .denyCacheImageMultipleSizesInMemory() 
     .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) 
     .memoryCacheSize(2 * 1024 * 1024) 
     .memoryCacheSizePercentage(13) // default 
     .diskCache(new UnlimitedDiscCache(cacheDir)) // default 
     .diskCacheSize(50 * 1024 * 1024) 
     .diskCacheFileCount(100) 
     .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default 
     .imageDownloader(new BaseImageDownloader(context)) // default 
     .imageDecoder(new BaseImageDecoder()) // default 
     .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default 
     .writeDebugLogs() 
     .build(); 

顯示選項

顯示選項可以應用到每一個顯示任務(ImageLoader.displayImage(...)調用)。

注意:如果顯示選項未傳遞給ImageLoader.displayImage(...)方法,則將使用默認的配置顯示選項(ImageLoaderConfiguration.defaultDisplayImageOptions(...))。

// DON'T COPY THIS CODE TO YOUR PROJECT! This is just example of ALL options using. 
// See the sample project how to use ImageLoader correctly. 
DisplayImageOptions options = new DisplayImageOptions.Builder() 
     .showImageOnLoading(R.drawable.ic_stub) // resource or drawable 
     .showImageForEmptyUri(R.drawable.ic_empty) // resource or drawable 
     .showImageOnFail(R.drawable.ic_error) // resource or drawable 
     .resetViewBeforeLoading(false) // default 
     .delayBeforeLoading(1000) 
     .cacheInMemory(false) // default 
     .cacheOnDisk(false) // default 
     .preProcessor(...) 
     .postProcessor(...) 
     .extraForDownloader(...) 
     .considerExifParams(false) // default 
     .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 
     .bitmapConfig(Bitmap.Config.ARGB_8888) // default 
     .decodingOptions(...) 
     .displayer(new SimpleBitmapDisplayer()) // default 
     .handler(new Handler()) // default 
     .build(); 

您可以順利地在您的項目中使用它們。

相關問題