Eme*_*men 3 android baseadapter universal-image-loader
根据标题,如何在ListView中的每次滚动后停止UIL重新加载图像?
以下是我实现Image Loader的方法:
public class LatestAdapter extends BaseAdapter {
...
// UIL
private ImageLoaderConfiguration config;
private File cacheDir;
private DisplayImageOptions options;
private ImageLoader imageLoader = ImageLoader.getInstance();
public LatestAdapter(Context context, ArrayList<ItemListModel> items) {
this.arrItemList = items;
this.context = context;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"JunkFolder");
else
cacheDir=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.placeholder)
.showImageOnFail(R.drawable.error)
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.build();
config = new ImageLoaderConfiguration.Builder(context)
.memoryCache(new WeakMemoryCache())
.denyCacheImageMultipleSizesInMemory()
.discCache(new UnlimitedDiscCache(cacheDir))
.threadPoolSize(5)
.defaultDisplayImageOptions(options)
.build();
imageLoader.init(config);
}
...
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
...
imageLoader.displayImage(nm.getThumbnail().getImage100(), vh.tvThumbnail, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
每次我滚动ListView(向上或向下),它都不会保存以前加载的图像,而是重新加载ImageView.如何"保存"图像,使其不会在每个卷轴上闪烁?
小智 5
在每个图像加载之前启用光盘缓存和内存缓存User ImageAware类,如下所示
ImageAware imageAware = new ImageViewAware(imageview,false); imageloader.displayImage(url,imageAware,otions);
| 归档时间: |
|
| 查看次数: |
3646 次 |
| 最近记录: |