Вы должны сделать эту логику в вашем приложении.При выборе изображения из галереи и съемке с помощью камеры используются разные намерения.
Я предлагаю вам использовать кнопку (или любой другой пользовательский интерфейс, чтобы заставить пользователя выбрать действие) и создать два отдельных метода для обоих действий.Допустим, вы создали две кнопки с именами btnPickGallery
и btnTakePicture
.
Обе кнопки запускают свои собственные действия, скажем onBtnPickGallery
и onBtnTakePicture
.
public void onBtnPickGallery() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), GALLERY_REQUEST_CODE);
}
public void onBtnTakePicture() {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = new File(Environment.getExternalStorageDirectory(), "dir/pic.jpg");
Uri outputFileUri = Uri.fromFile(photo);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
}
Изатем вы можете получить результат, используя метод onActivityResult()
.