『素人のアンドロイドアプリ開発日記』
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 コメント:
コメントを投稿