Ahm*_*sir 3 android image-caching universal-image-loader
如果图像已经缓存,我不想下载图像.我正在使用NOSTRA的ImageLoader库.请告诉我是否有办法做到这一点.以下是代码: -
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_sample)
.resetViewBeforeLoading()
.cacheInMemory()
.cacheOnDisc()
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.bitmapConfig(Bitmap.Config.ARGB_8888)
.build();
imageLoader.displayImage(url2.toString()
,thumbnail,options, new
ImageLoadingListener() {
@Override
public void onLoadingStarted() {
// progressBar.setVisibility(grid.VISIBLE);
// grid.notify();
}
@Override
public void onLoadingFailed(FailReason failReason) {
//progressBar.setVisibility(grid.GONE);
// grid.notify();
}
@Override
public void onLoadingComplete(Bitmap bitmap) {
// progressBar.setVisibility(grid.GONE);
// grid.notify();
}
@Override
public void onLoadingCancelled() {
// progressBar.setVisibility(grid.GONE);
//grid.notify();
}
});
Run Code Online (Sandbox Code Playgroud)
您尚未定义默认缓存选项DisplayImageOption.
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
.threadPoolSize(5)
.threadPriority(Thread.MIN_PRIORITY + 3)
.denyCacheImageMultipleSizesInMemory()
// 1MB=1048576
.memoryCacheSize(1048576 * 5)
.discCache(new UnlimitedDiscCache(cacheDir))
.build();
Run Code Online (Sandbox Code Playgroud)
这里,cacheDir目录可能是开启的SD card(需要权限"android.permission.WRITE_EXTERNAL_STORAGE")或application's cache目录.
我cacheDirectory在我的申请中提供了.
File cacheDir = new File(this.getCacheDir(), "name of directory");
if (!cacheDir.exists())
cacheDir.mkdir();
Run Code Online (Sandbox Code Playgroud)
现在,ImageLoader在下载任何图像之前,通过以下代码提供配置,
imageLoader.init(config);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |