获取 android MINI_KIND 缩略图的字节数组
Get byte array of android MINI_KIND thumbnail
我想知道是否可以直接获取android MINI_KIND缩略图的字节数组(获取位图然后编码它可以,但我想直接获取它)。
来自 Android 的 API http://developer.android.com/reference/android/provider/MediaStore.Images.Thumbnails.html
看来只能获取Bitmap了。但希望有另一种方法可以直接获取它。
谢谢。
以下代码对我有用。虽然它 return 对某些图像无效。
private static String getDeviceThumbnailUri(String sImagePath, Context context){
String[] projection = { MediaStore.Images.Media._ID };
String result = null;
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.getContentUri("external"),
projection, MediaStore.Images.ImageColumns.DATA + " LIKE ?", new String[] { sImagePath }, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
cursor.moveToFirst();
long imageId = cursor.getLong(column_index);
cursor.close();
cursor = MediaStore.Images.Thumbnails.queryMiniThumbnail(
context.getContentResolver(), imageId,
MediaStore.Images.Thumbnails.MINI_KIND,
null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
result = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails.DATA));
}
if (cursor!=null) {
cursor.close();
}
return result;
}
我想知道是否可以直接获取android MINI_KIND缩略图的字节数组(获取位图然后编码它可以,但我想直接获取它)。
来自 Android 的 API http://developer.android.com/reference/android/provider/MediaStore.Images.Thumbnails.html
看来只能获取Bitmap了。但希望有另一种方法可以直接获取它。
谢谢。
以下代码对我有用。虽然它 return 对某些图像无效。
private static String getDeviceThumbnailUri(String sImagePath, Context context){
String[] projection = { MediaStore.Images.Media._ID };
String result = null;
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.getContentUri("external"),
projection, MediaStore.Images.ImageColumns.DATA + " LIKE ?", new String[] { sImagePath }, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
cursor.moveToFirst();
long imageId = cursor.getLong(column_index);
cursor.close();
cursor = MediaStore.Images.Thumbnails.queryMiniThumbnail(
context.getContentResolver(), imageId,
MediaStore.Images.Thumbnails.MINI_KIND,
null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
result = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails.DATA));
}
if (cursor!=null) {
cursor.close();
}
return result;
}