6

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

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

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

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

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

(Pls отметить, что: Я использую Android SDK 1.5 с HTC Hero)

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

Thanx, Paresh

ответ

9

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

GOODLUCK!

+0

Глядя, что ... наконец, мне нужно реализовать приложение Camera во втором способе ссылки –

+0

thanx для ценного ответа ... но дайте мне знать, какой максимальный размер можно захватить с намерением IMAGE_CAPTURE? –

+0

Вы можете получить их в полном размере, но вы, возможно, не будете. Я столкнулся с одной и той же проблемой, получив снимки на меньшем изображении, чем я должен угадать. Теоретически вы должны иметь возможность получить растровое изображение по указанному вами пути. Однако мне удалось получить более крупную версию через: \t \t \t \t Uri pic = Uri.parse (data.toURI()); \t \t \t \t Bitmap bm = Media.getBitmap (getContentResolver(), pic); в методе onActivityResult. Надеюсь это поможет. – ninjasense

4

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

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

    SurfaceHolder в Ususally реализован с использованием SurfaceView

+0

thanx для ответа .. я уже прочитал эту статью, но не знаю, как ее реализовать. –