カメラで実験中(続)

引き続き、なんちゃってARっぽいアプリを作っていました。
Previewにミクの画像をオーバーレイできたので、どうせならその画像も取得したいと思い、試行錯誤。いろいろ躓きまくりました。



1)まずlandscapeだとセンサーのroll値が変なことになって、ミクの画像がカクカクしちゃう。landscapeにしてもセンサーはportrait固定っぽい。
ということで面倒なので、portrait固定のアプリにしちゃいました。


2)次に画面上にButton(画面下部のCaptureというボタン)を表示するのに一苦労。xmlで定義したものは表示できなかったり、コードから表示しようとすると画面いっぱいにボタンが表示されてしまったり。
最終的にLinearLayout.LayoutParamsで色々弄って、layoutに一度addViewして、さらにlayoutをaddContentViewして解決。Buttonは表示できました。


3)さらに画面のキャプチャ。時間がかかりましたが色々調べて、getRootView()やsetDrawingCacheEnabled()を用いて画面の保存に成功。
しかしSurfaceViewに表示してるCameraのPreviewが取得できない。ある程度は予想してましたが、SurfaceViewは別扱いなのかな。でもPreviewを表示する対象はSurfaceViewじゃないと駄目だし。
CameraでtakePicture()しちゃうと、撮影はできてもミクの絵の合成はどうすればいいのか分からない。


▼Captureボタンで保存した画像。背景が真っ黒に。


ということでここで行き詰りました。なんらかの解決法が見つからないと厳しいかな。今後Camera周りの実装方法も変わると思うし、しばらく様子見します。

それにしても、Androidプログラミングに関する日本語の情報は、かなり少ないと思いました。技術文書をすらすらリーディングできる程度には、英語も分からないといけないなぁと痛感。