有没有人使用过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));
有人能告诉我如何通过此次通话添加自定义参数吗?
答案 0 :(得分:0)
基本上Volley提供两种方式来请求图像
示例:
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文档中的配置选项的默认值。
// 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();
您可以顺利地在项目中使用它们。