我正在使用UIL在listview中加载图像.
当我长按列表视图中的图像时,我会显示一个对话框来修改该图片,使用相机替换为新图片.
如果我拍摄新照片,当对话框被取消时,我的列表视图仍会显示旧图像(因为它已被缓存).如果我在进入listview时关闭并重新启动我的应用程序,则新图像正确存在.
这是我设置UIL的方式:
// Get singletone instance of ImageLoader
imageLoader = ImageLoader.getInstance();
//set display options for image loader
DisplayImageOptions displayOptions = new DisplayImageOptions.Builder()
.cacheInMemory()
.displayer(new FadeInBitmapDisplayer(500)) //fade in images
.resetViewBeforeLoading()
.build();
//set image loader options
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(displayOptions).build();
// Initialize ImageLoader with configuration.
imageLoader.init(config);
Run Code Online (Sandbox Code Playgroud)
如果我删除.cacheInMemory()一切工作虽然.我只是想知道在打开对话框时是否可以清除缓存.我试图抓住所选的ImageView并myImageView.invalidate()在打开对话框时调用但没有成功.
图像从文件加载:
// Load and display image asynchronously
imageLoader.displayImage(file_prefix + image_path, image);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
编辑:代码在长按图像时创建上下文菜单,我试图清除那里的缓存:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//get info …Run Code Online (Sandbox Code Playgroud)