기본적으로 다음과 같은 이미지 경로가 있습니다. /mnt/sdcard/Pictures/image.jpg 그리고 가능한 가장 빠른 방법으로 미리보기 이미지의 경로를 가져와야합니다.안드로이드의 이미지 경로에서 축소판 경로를 얻는 방법은 무엇입니까?
MediaStore.Images.Thumbnails.queryMiniThumbnail을 사용하려고하지만 null 커서가 무엇이든지 상관없이 전달하려고합니다. 감사합니다.
편집 : 이것은 이미지 경로와 미리보기 경로를 모두 가져 와서 문자열에 저장하는 기능입니다. 필요한 이미지 경로 (/mnt/sdcard/Pictures/image.jpg)에 대한 축소판 경로를 반환하는 함수가 필요합니다. 감사합니다.
public String getThumbPaths(ThumbContext ctx) {
Uri uri = MediaStore.Images.Thumbnails.getContentUri("external");
Cursor cursor = MediaStore.Images.Thumbnails.queryMiniThumbnails(ctx
.getActivity().getContentResolver(), uri,
MediaStore.Images.Thumbnails.MINI_KIND, null);
int columnIndex = cursor.getColumnIndex(Thumbnails.IMAGE_ID);
String[] filePathColumn = { MediaStore.Images.Media.DATA };
StringBuilder stringBuilder = new StringBuilder();
String id = MediaStore.Images.Media._ID + "=?";
String orientation="1";
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
String imageId = cursor.getString(columnIndex);
Cursor images = ctx.getActivity().managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
filePathColumn, id,
new String[] { imageId }, null);
String filePath = "";
if (images != null && images.moveToFirst()) {
filePath = images.getString(images
.getColumnIndex(filePathColumn[0]));
}
ExifInterface exifReader;
try {
exifReader = new ExifInterface(filePath);
orientation=exifReader.getAttribute(ExifInterface.TAG_ORIENTATION);
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
stringBuilder.append(cursor.getString(1) + ";");
stringBuilder.append(filePath + ";");
stringBuilder.append(orientation + ";");
orientation="1";
}
//cursor.close();
return stringBuilder.toString();
}
일부 코드를 게시하십시오 ... – njzk2
queryMini 이미 삽입 된 이미지에 사용됩니다. – njzk2