2014-09-11 3 views
0

Я пытаюсь использовать Biokys crop Image, и он говорит, что вам нужно передать ему путь к файлу изображения.Передача пути URI изображения

У меня есть URI, который я передаю ему:

intent = getActivity().getIntent(); 
    uri = intent.getParcelableExtra("Image"); 

    Intent intent = new Intent(getActivity(), CropImage.class); 
    intent.putExtra(CropImage.IMAGE_PATH, uri.getPath()); 
    intent.putExtra(CropImage.SCALE, true); 
    intent.putExtra(CropImage.ASPECT_X, 3); 
    intent.putExtra(CropImage.ASPECT_Y, 2); 

    startActivityForResult(intent, REQUEST_CODE_CROP_IMAGE); 

Вот это onActivityResult:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode != getActivity().RESULT_OK) { 

     return; 
    } 

    Bitmap bitmap; 

    switch (requestCode) { 



    case REQUEST_CODE_CROP_IMAGE: 

     String path = data.getStringExtra(CropImage.IMAGE_PATH); 
     if (path == null) { 

      return; 
     } 

     Picasso.with(getActivity()).load(path).into(mImageView); 
     break; 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 

Но когда я пытаюсь передать мой Uri к классу растений я получаю следующий в моем журнале:

file /external/images/media/39690 not found 

Может кто-нибудь знать, что я могу сделать, чтобы получить его, чтобы прочитать мой Ури? спасибо

ответ

1

Вы можете использовать Uri для получения document id, а затем запросить либо MediaStore.Images.Media.EXTERNAL_CONTENT_URI, либо MediaStore.Images.Media.INTERNAL_CONTENT_URI (в зависимости от ситуации с картой SD).

Чтобы получить идентификатор документа:

String wholeID = DocumentsContract.getDocumentId(uriThatYouCurrentlyHave); 

// Split at colon, use second item in the array 
String id = wholeID.split(":")[1]; 

String[] column = { MediaStore.Images.Media.DATA };  

// where id is equal to    
String sel = MediaStore.Images.Media._ID + "=?"; 

Cursor cursor = getContentResolver(). 
          query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
          column, sel, new String[]{ id }, null); 

String filePath = ""; 

int columnIndex = cursor.getColumnIndex(column[0]); 

if (cursor.moveToFirst()) { 
    filePath = cursor.getString(columnIndex); 
} 

cursor.close(); 

Ссылка: https://stackoverflow.com/a/20413475/3326331