Во многих 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;
}
В каждом из этих случаев путь к изображению можно получить из 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;
}
Комментариев нет:
Отправить комментарий