Вы можете использовать startActivityForResult
, передавая Намерение, которое описывает действие, которое вы хотите выполнить, и источник данных для выполнения действия.
К счастью для вас, Android включает в себя Действие для сбора вещей: Intent.ACTION__PICK
и источник данных, содержащий изображения:
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
для изображений на локальном устройстве или
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
для изображений на SD-карте.
Вызовите startActivityForResult
, передавая действие выбора и изображения, из которых пользователь хочет выбрать, например:
startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);
Затем переопределите onActivityResult
, чтобы прослушать пользователя, сделавшего выбор.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SELECT_IMAGE)
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
// TODO Do something with the select image URI
}
}
Получив изображение Uri, вы можете использовать его для доступа к изображению и делать с ним все, что вам нужно.