gpt4 book ai didi

android - 在适配器中显示相同的图像文件 - Android

转载 作者:行者123 更新时间:2023-11-29 20:42:24 24 4
gpt4 key购买 nike

情况:

我有一个包含用于选择图像的图像选择器功能的 Activity 。选择后,这些图像将加载/显示在 GridView 中。我通过以下方法使用 ImageLoader 库加载图像:

ImageLoader.getInstance().displayImage("file://"+image.path, Utility.displayImageOptions);

在同一个 Activity 中,我有一个预览按钮,点击它会导致另一个新 Activity 。这个新 Activity 还包含一个 GridView,它使用与上一个 Activity 中相同的适配器代码。但是,此 GridView 包含先前选择的图像的压缩版本。

在我的压缩中,我保存了这些位图并创建了在第二个 Activity 中加载的新文件。

saveBitmapToFile(bitmap, index);

private void saveBitmapToFile(Bitmap bitmap, int imageIndex){

try {
bitmapFile = getPermanentFile(imageIndex);

FileOutputStream fos = new FileOutputStream(bitmapFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);

fos.flush();
fos.close();
Images image = new Images(bitmapFile.getAbsolutePath(), true, false);

compressedImageList.add(image);
}
catch (IOException e){
e.printStackTrace();
}

}

private static File getPermanentFile(int imageIndex) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File file = new File(Environment.getExternalStorageDirectory(), TEMP_PHOTO_FILE + String.valueOf(imageIndex) + ".jpg");
try {
if (file.exists()){
Log.v("File exists", file.getName());
file.delete();
file = new File(Environment.getExternalStorageDirectory(), TEMP_PHOTO_FILE + String.valueOf(imageIndex) + ".jpg");
}
file.createNewFile();
} catch (IOException e) {
}

return file;
} else {
return null;
}
}

我遇到的问题是说我从一个新的应用程序开始(缓存中没有存储任何内容),选择 4 张图像并单击预览,我得到了这四张图像的压缩版本。但随后我关闭应用程序并再次启动它,我再次选择 4 个不同的图像 并点击预览但我得到了与我第一次得到的相同的 4 个压缩图像。通过进入设置清除缓存/数据可以解决问题,但我如何在代码中执行此操作。

我删除了这些文件 onBackPressed() 但当我单击返回并再次选择图像时问题仍然存在。

@Override
public void onBackPressed(){
super.onBackPressed();

for (Images file : compressedImageList){

File f = new File(file.cardPath);
boolean deleted = f.delete();

if (deleted){
Log.v("File deleted : ", file.cardPath);
}

}
compressedImageList.clear();
}

最佳答案

你试过吗

imageLoader.clearMemoryCache();

imageLoader.clearDiscCache();

关于android - 在适配器中显示相同的图像文件 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30837881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com