при выборе изображения из галереи путь к изображению не возвращается в Android

#android #image

#Android #изображение

Вопрос:

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


 public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
           logo_path.setText(selectedImagePath);

        }
    }
}
public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
 

Комментарии:

1. Зарин, что именно ты получаешь?

2. @ Kishan В поле ничего не отображается, и ошибок тоже нет.

3. какая ошибка отображается в журнале?

Ответ №1:

Попробуйте это.

 public String getImagePathFromURI(Uri uri) {

    String imgpath = "";
    Cursor c= getContentResolver().query(uri, null, null, null, null);

    if (c == null) { 

        imgpath= uri.getPath();  // Getting path from url itself

    } else { 

        c.moveToFirst();
        int id = c.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
        result = c.getString(id);
        c.close();  // Close curson.
    }

    return imgpath;  // original image path
}
 

Ответ №2:

 public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    @SuppressWarnings("deprecation")
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    if (cursor == null)
        return null;
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
 

и в вашем onActivityResult использовании

 String path = getRealPathFromURI(uri); 
Bitmap bmp = BitmapFactory.decodeFile(path);