среда, 1 июля 2015 г.

Android. Get absolute path of image

Во многих Android приложениях требуется работа с изображениями, будь то выбор фото из галереи или съемка с помощью камеры. Зачастую, после выполнения этих действий необходимо манипулировать файлом изображения, записанным в память телефона.

В каждом из этих случаев путь к изображению можно получить из Intent, переданный в метод onActivityResult:

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

    Uri imagePath = data.getData();
}

Однако если вы захотите использовать этот путь для доступа к файлу, у вас ничего не получится.

Решение

Чтобы получить абсолютный путь к файлу в памяти телефона, воспользуйтесь этим методом:

private String getImagePath(Intent data) {
    Uri path = data.getData();

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

    Cursor cursor = getActivity().getContentResolver().query(path,
            filePathColumn, null, null, null);
    cursor.moveToFirst();

    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
    String picturePath = cursor.getString(columnIndex);
    cursor.close();

    return picturePath;
}



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

Отправить комментарий