【发布时间】: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