Фотосъемка с помощью приложения камеры
Способ делегирования действий в Android другим приложениям состоит в том, чтобы вызвать Intent, описывающий то, что вы хотите сделать. Этот процесс состоит из трех частей:
- Само намерение
- вызов для запуска внешней активности
- некоторый код для обработки данных изображения, когда фокус возвращается к вашей активности
Вот функция, которая вызывает намерение сделать снимок.
static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
Обратите внимание, что метод startActivityForResult () защищен условием, которое вызывает resolActivity (), которое возвращает первый компонент действия, который может обработать намерение. Выполнение этой проверки важно, потому что если вы вызываете startActivityForResult () с намерением, которое не может обработать ни одно приложение, ваше приложение аварийно завершится. Поэтому, пока результат не равен нулю, использовать намерение безопасно.
Получить эскиз
Если простое умение фотографировать не является кульминацией амбиций вашего приложения, то вы, вероятно, хотите получить изображение обратно из приложения камеры и что-то с ним сделать.
Приложение Android Camera кодирует фотографию в возвращаемом Намерении, доставленном в onActivityResult (), в виде небольшого растрового изображения в дополнениях под ключом «данные». Следующий код извлекает это изображение и отображает его в ImageView.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
Проверьте официальную документацию , чтобы лучше понять.
Надеюсь, это поможет.