Android - Захват фото - PullRequest
       41

Android - Захват фото

6 голосов
/ 16 августа 2010

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

Подробно, мое приложение содержит один текстовый вид (вверху) для отображения названия действия и одинКнопка (внизу) и в средней части экрана, предварительный просмотр камеры должен быть просмотрен .. Когда пользователь нажимает на эту кнопку, нужно щелкнуть 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.

Спасибо, Paresh

Ответы [ 2 ]

9 голосов
/ 16 августа 2010

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

Гудлак!

4 голосов
/ 16 августа 2010

Все инструкции находятся в 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

...