2013-05-21 2 views
2

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

Это, как я могу это сделать:

private void takePic() { 
    ContentValues values = new ContentValues(); 
    String TITLE = null; 
    values.put(MediaColumns.TITLE, TITLE); 
    String DESCRIPTION = null; 
    values.put(ImageColumns.DESCRIPTION, DESCRIPTION); 
    values.put(MediaColumns.MIME_TYPE, "image/jpeg"); 
    imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 

    startActivityForResult(intent, IMAGE_CAPTURE); 
} 

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

+0

Никто здесь знает ответ? – user896692

+0

вы можете получить Media ID, запросив «MediaStore.Images.Media.DATA' для« MediaStore.MediaColumns._ID »в' onActivityResult', когда изображение успешно хранится в Content Provider –

+0

спасибо. У вас есть пример кода, как это работает? Никогда не работал с этим. – user896692

ответ

2

вы можете попробовать также quering MediaStore.Images.Media.DATA для медиа Ури, который у вас есть, а не в Mediastore Content Provider

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(resultCode==RESULT_OK){ 
      if(requestCode == IMAGE_CAPTURE){ 
        // get Media Uri from data 

        Uri media_uri = data.getData(); 
        String[] column = {MediaStore.Images.Media._ID}; 

        Cursor cursor = getContentResolver().query(media_uri, column, 
                   null, null, null); 
        cursor.moveToFirst(); 
        if(cursor.getCount()>0){ 
        int Media_ID = cursor.getInt(cursor 
          .getColumnIndex(MediaStore.MediaColumns._ID)); 
        //... store media ID here.. 
        } 
       cursor.close(); 
      } 
     } 
    } 
Смежные вопросы