你可以使用 MediaStore 类的 MediaStore.Images.Thumbnails 内建方法来获取缩略图的路径。
首先,你需要查询 MediaStore 中的图片信息,然后使用 MediaStore.Images.Thumbnails 类的 getThumbnail 方法来获取缩略图。
下面是一个示例代码,假设你已经获取了原始图像的路径:
String[] projection = {MediaStore.Images.Thumbnails._ID};
// 这里的selection和selectionArgs参数用于指定要查询哪些图片
String selection = MediaStore.Images.Thumbnails.DATA + "=?";
String[] selectionArgs = { filePath };
Cursor cursor = getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, null);
if (cursor.moveToFirst()) {
// 获取缩略图ID
int thumbnailId = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID));
// 获取缩略图路径
String thumbnailPath = getThumbnailPath(thumbnailId);
}
cursor.close();
上述代码中的 getThumbnailPath 函数可以使用以下代码实现:
private String getThumbnailPath(int thumbnailId) {
Cursor thumbnailCursor = getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
new String[] {MediaStore.Images.Thumbnails.DATA},
MediaStore.Images.Thumbnails._ID + "=?",
new String[] { Integer.toString(thumbnailId) },
null);
if (thumbnailCursor.moveToFirst()) {
return thumbnailCursor.getString(thumbnailCursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA));
}
thumbnailCursor.close();
return null;
}
注意:这里的 getContentResolver() 函数是 Context 类的一个方法,你需要在你的Activity或者Service中调用它。