2015-03-23 1 views
0

Мне интересно, можно ли получить массив байтов миниатюр android MINI_KIND напрямую (получить растровое изображение, а затем закодировать его, но я хочу получить его напрямую).Получить массив байтов android MINI_KIND thumbnail

От API Андроида http://developer.android.com/reference/android/provider/MediaStore.Images.Thumbnails.html

Похоже, мы можем получить только Bitmap. Но, надеюсь, есть другой способ получить его напрямую.

Спасибо.

ответ

0

Этот код работает для меня. Хотя для некоторых изображений он возвращает null.

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; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^