Camera
カメラの扱い方
・AndroidManifest
上記、二つの記述が必要。
上は、カメラを持つ端末にのみインストールを許す指定。
下は、アプリにカメラを扱う許可を与える指定。
SurfaceHolder.setType(SURFACE_TYPE_PUSH_BUFFERS);の記述が必要
(ドキュメントでは、deprecatedと書かれていたが、3.0以前のバージョンでは必要)
・Camera
open():スタティックメソッド。カメラオブジェクトの取得。
setPreviewDisplay():カメラ映像の表示先Surfaceの指定。(引数はSurfaceHolder)
getParameters():カメラの設定の取得
setParameters():カメラの設定
startPreview():カメラ映像の表示の開始
stopPreview():カメラ映像の表示の停止
release():他のアプリがカメラを利用できるように、解放する。
takePicture():写真を撮る。4つのコールバックを指定できる。
(最後のjpegのコールバックで、写真のJPEG画像が取得できるから、とりあえずそれだけでいいのかな。)
startPreviewとstopPreviewの間で実行する必要がある。
撮影後はプレビューが止まるので、再度startPreviewする必要がある。
autoFocus():オートフォーカスを起動する。引数に起動完了後に呼出されるコールバックを指定する。
#これを使わないと写真がブレブレ。
cancelAutoFocus():フォーカスをデフォルトに戻す。
・ShutterCallback
撮影直後に呼出されるコールバックインターフェース。シャッター音を出したりするのに使う。
onShutter():撮影直後に呼出されるメソッド。引数なし。
・PictureCallback
撮影した画像を渡されるコールバックインターフェース。
ここで受け取った画像を保存したりする。
onPictureTaken:画像をバイト配列で受け取る。BitmapFactory.decodeByteArrayでBitmapオブジェクトに変換できる。
・AutoFocusCallback
autoFucus()のコールバックインターフェース
onAutoFocus():オートフォーカス完了後に呼出されるメソッド。
・Camera.Parameters
カメラの各種設定を扱うクラス
getSupportedPreviewSizes():カメラのサポートする解像度のリスト取得
setPreviewSize():プレビュー表示のサイズ指定。画面のサイズ以下に指定しておく。
setColorEffect():カラーエフェクトの設定。(利用前にサポートされているか要確認)
・Camera.ShuttureCallback
・Camera.PictureCallback
エフェクトも掛けられる。
顔認識機能も提供されているので、面白そうだから色々やってみたい。