Androidでカメラを使う(1)

| 2012年5月8日火曜日
・参考
『素人のアンドロイドアプリ開発日記』
http://andante.in/i/%E3%82%AB%E3%83%A1%E3%83%A9%E3%82%A2%E3%83%97%E3%83%AA/android%E3%81%A7%E3%82%AB%E3%83%A1%E3%83%A9%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82/

1.SurfaceViewを継承し、SurfaceHolder.Callbackインターフェースを実装する


2.マニフェストにカメラのパーミッションを追加する
applicationのタグの前に追加します。
<uses-permission android:name="android.permission.CAMERA">
また、プレビューを表示する予定のActivityに、以下のパラメータを追加
android:screenOrientation="landscape"

3.実装していく
今回扱うのは初めて扱うものばかりだ。
Cameraも初めてなら
SurfaceViewも初めて
ActivityのsetContentViewにSurfaceViewが入るのか!


4.確認
基本的なところを書き終えたので確認。
Emulatorを起動・・・おや画面が真っ白だ。

調べてみたところ、Emulatorではカメラの映像は映らないらしい。
なので実機、MEDIASさんを取り出し接続!

実行、そしてエラー。

    parameters.setPreviewSize(width, height);
でRuntimeException。
中身は、setParameters failed。
ググってみると、有名なエラーで、カメラ開発初心者に対する洗礼のようだ。
Android2.0から発生する仕様で
・参考
『理系のためのTIPS集』
『hiroki.kanaの日常』

getSupportedPreviewSizes();というメソッドで正しく取得できるようだ。
    List<Size> previewSizes = myCamera.getParametors.getSupportedPreviewSizes();
    Size size = previewSizes.get(0);
    parameters.setPreviewSize(size.width, size.height);
    

これで、はじめに紹介した参考サイト『素人のアンドロイドアプリ開発日記』さんと同じ状態のものができました。
引き続き、
『素人のアンドロイドアプリ開発日記』さんの記事を参考に勉強を進めていきます。


0 コメント:

コメントを投稿