2013-08-19 3 views
0

Я попробовал этот код:Получить эскиз выбранного изображения из галереи

if (resultCode == RESULT_OK) { 
     if (requestCode == REQUEST_CAMERA) { 
      photoUri = capturedImagePath(); 
      Log.d("path to captured image", capturedImagePath().toString()); 
      Bitmap aBitmap = BitmapFactory.decodeFile(photoUri.toString()); 
      mProfilePic.setImageBitmap(aBitmap); 
      mEncodedImageString = convertBitmapToString(aBitmap); 
     Log.v("Base64 Image String : ", mEncodedImageString); 

    } else if (requestCode == SELECT_FILE) { 
     photoUri = data.getData(); 
     String[] filePathColumn = { 
      MediaStore.Images.Media.DATA 
     }; 
     Cursor cursor = getContentResolver().query(photoUri, filePathColumn, null, null, 
       null); 
     cursor.moveToFirst(); 
     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     String picturePath = cursor.getString(columnIndex); 
     cursor.close(); 
     Bitmap aBitmap = BitmapFactory.decodeFile(picturePath); 
     mProfilePic.setImageBitmap(aBitmap); 
     mEncodedImageString = convertBitmapToString(aBitmap); 
     Log.v("Base64 Image String : ", mEncodedImageString); 
    } 
} 

, чтобы получить путь к изображению, но это дает мне исходное изображение. Я хочу, чтобы эскиз выбранного изображения был выбран. Может ли кто-нибудь помочь мне добиться того же?

+0

У этих изображений есть миниатюры? Если нет, вам нужно будет создать их. – andy256

ответ

1

Вы можете легко создать миниатюру, как это:

int thumbFactor = 4; // choose a power of 2 
Bitmap thumb = Bitmap.createScaledBitmap(image, image.getWidth()/thumbFactor, image.getHeight()/thumbFactor, false); 

См Bitmap

1

На самом деле вы не можете получить миниатюру по URI запроса. Поскольку галерея кэширует миниатюру сама по себе. Если вам нужен эскиз, вам придется декодировать исходное изображение самостоятельно.