【问题标题】:Android keeps thumbnails for deleted images and they appear when I request them, but original files dontAndroid 会保留已删除图像的缩略图,当我请求它们时它们会出现,但原始文件不会
【发布时间】:2015-07-03 22:46:16
【问题描述】:

在我的应用程序中,我从设备获取图像缩略图以显示在来自 MediaStore 的自定义画廊中

getLoaderManager().initLoader(CURSORLOADER_THUMBS, null, this);
getLoaderManager().initLoader(CURSORLOADER_REAL, null, this);

@Override
public Loader<Cursor> onCreateLoader(int cursorID, Bundle arg1) {
    CursorLoader cl = null;

    ArrayList<String> img = new ArrayList<String>();
    switch (cursorID) {

    case CURSORLOADER_THUMBS:
        img.add(MediaStore.Images.Media._ID);
        break;
    case CURSORLOADER_REAL:
        img.add(MediaStore.Images.Thumbnails.DATA);
        break;
    default:
        break;
    }

    cl = new CursorLoader(application, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, img.toArray(new String[img.size()]), null, null, null);
    return cl;
}


private String getPathOfThumbnailById(Context context, int id) {
    Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Images.Media.DATA }, MediaStore.Images.Media._ID + "=?", new String[] { "" + id }, null);
    if (cursor != null && cursor.getCount() > 0) {
        cursor.moveToFirst();
        String fullPath = cursor.getString(0);
        cursor.close();
        return fullPath;
    } else {
        return "";
    }
}

但是如果用户去一个文件夹并删除了一张图片,Android 不会删除相应的缩略图,所以画廊应用会一直显示缩略图,用户点击它,但没有找到图片。

【问题讨论】:

  • 谁在删除图片?你的应用程序?画廊?其他应用?
  • 用户从其他地方删除图像(例如某些文件浏览器应用程序)
  • 但是android没有删除相应的缩略图,所以缩略图在我的应用程序中仍然可见,但是当用户点击它时,他们没有得到图像(因为它已被删除)
  • 是的。如果用户使用图库应用删除图像怎么办?
  • 系统为其创建的缩略图保持未删除状态,我的应用会获取所有缩略图并显示它们,其中包括已删除图像的缩略图:(

标签: android gallery thumbnails


【解决方案1】:

只需将此代码放入 onResume() 中,这样当用户离开您的应用以删除图像并在删除该图像后用户将返回您的应用和您的 onReume() 调用和您的应用将刷新图像。

【讨论】:

  • 正如我所说,Android不会从设备中删除相应的缩略图图像,并且我的应用程序会在将新图像添加到设备时获取系统准备的缩略图,因此它始终显示图像的缩略图谁不存在了
猜你喜欢
  • 2019-08-11
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
相关资源
最近更新 更多