Android - захват фотографии

В моем приложении мне нужно реализовать родную операцию с камерой, где мне нужно запустить камеру и сделать фотографию.

Подробно, мое приложение, содержащее, один TextView (вверху) для отображения названия активности и одну кнопку (внизу) и в средней части экрана, должен просматриваться предварительный просмотр камеры. Когда пользователь нажимает на эту кнопку, нужно щелкнуть Snaps и отобразить его в ImageView другого вида деятельности.

Я знаю, что используется следующий подход:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );

Но этот подход, если я использовал его, тогда мое текстовое представление и представление кнопок не отображаются.

(Просьба обратить внимание, что: я использую Android SDK 1.5 с HTC Hero)

Пожалуйста, помогите мне, предложив любую статью, сайт или PDF.

Спасибо, Пареш

6
задан Paresh Mayani 16 August 2010 в 11:41
поделиться

2 ответа

Если вы пытаетесь использовать встроенную камеру, то после вызова встроенной камеры она будет управлять вашим видом. Однако если вы хотите реализовать свою собственную камеру, то такая компоновка будет возможна. Некоторые хорошие примеры можно найти здесь:

Удачи!

9
ответ дан 8 December 2019 в 18:29
поделиться

Все инструкции находятся в JavaDoc на android.hardware.Camera по адресу http://developer.android.com/reference/ android / hardware / Camera.html :

  1. Получите экземпляр Camera из open ().
  2. Получить существующие (по умолчанию) настройки с помощью getParameters ().
  3. При необходимости измените возвращенный объект Camera.Parameters и вызовите setParameters (Camera.Parameters).
  4. При желании вызовите setDisplayOrientation (int).
  5. Важно: передайте полностью инициализированный SurfaceHolder в setPreviewDisplay (SurfaceHolder). Без поверхности камера не сможет начать предварительный просмотр.
  6. Важно: вызовите startPreview (), чтобы начать обновление области предварительного просмотра. Предварительный просмотр должен быть запущен, прежде чем вы сможете сделать снимок.
  7. Когда хотите, вызовите takePicture (Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback), чтобы сделать снимок.Подождите, пока обратные вызовы предоставят фактические данные изображения.
  8. После съемки изображение предварительного просмотра прекращается. Чтобы сделать больше фотографий, сначала снова вызовите startPreview ().
  9. Вызовите stopPreview (), чтобы остановить обновление поверхности предварительного просмотра.
  10. Важно: вызовите release (), чтобы освободить камеру для использования другими приложениями. Приложения должны немедленно освободить камеру в onPause () (и повторно открыть () ее в onResume ()).

    SurfaceHolder обычно реализуется с использованием SurfaceView

4
ответ дан 8 December 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: