Camera機能の使用方法|Android開発

      2017/04/21

AndroidでCamera(android.hardware.Camera)機能の使用方法です。
なお、android.hardware.CameraはAPI level 21.からdeprecatedです。

permissionの追加

カメラを使用するためにはAndroidManifest.xmlで

を指定しておく必要があります。

layout

プレビュー表示を行うためのSurfaceViewを用意します。

カメラの利用手順

準備

  • 生成したSurfaceViewインスタンスからSurfaceHolderを取得、保持します。
  • SurfaceHolderにSurfaceHolder.Callbackを設定します。
  • SurfaceHolder.Callback.surfaceChanged()
    本メソッド受信以降でカメラのオープン処理を行います。

カメラのオープン

  • カメラのオープンを行います。オープンするカメラのIDを指定します。

プレビューの開始

  • プレビュー領域を指定します。指定するのは先程取得したSurfaceHolderです。
  • 必要なパラメータを設定します。(下記はサンプル)
  • ディスプレイの角度を指定することで、プレビューの向きを調整します。
  • setPreviewCallback()でプレビュー中の画像データを受信できます。(必要な場合のみ)
  • プレビューを開始します。

[2017.04.21追記]別のプレビュー画像取得方法

撮影

  • 必要なパラメータを設定します。(下記はサンプル)
  • 撮影を開始します。撮影後のデータ形式毎にコールバックが指定できます。(下記はJpegを指定)
  • コールバックに通知された撮影画像を処理します。(保存など)
    上記の場合、Camera.PictureCallback.onPictureTaken(byte[] data, Camera camera)で受信します。

カメラのクローズ

  • setPreviewCallback()でプレビュー中の画像データを受信していた場合は通知を解除します。
  • プレビューの停止(必須では無いようです)
  • カメラの解放を行います。

 - Android