「はちゅねカメラ」で苦労したトコロ

カメラ実験で挫折後、諦めずに試行錯誤して「はちゅねカメラ」ができました。自分のために、苦労した箇所を忘れないうちに書いておこうかと。


1)画面キャプチャ
キャプチャはgetRootView()でできますが、SurfaceViewの表示は取得してくれません。なので撮影した画像をImageViewに一度表示させ、そこをキャプチャしてストレージに保存しています。


2)ギャラリーの更新
HTC DESIRE(SoftBank X06HT)では、ContentResolverを使用してもギャラリーが更新されません。こちらを参考に、MediaScannerConnectionを使用して解決しました。


3)Android 1.6と2.xの、Cameraのメソッドの違い
Android 1.6では、2.xで用意されているgetSupportedPreviewSizesなどのメソッドが使えません。こちらを参考に、リフレクションというテクニックで2.xのメソッドを使用しました。さすがにAndroid 2.xのみ対応では寂しいので。


4)なぜか1枚目が撮影できない
私の技量不足でハマってました。撮影した画像がImageViewに入るまでのタイムラグがあり、キャプチャ実行時にImageViewが更新されていなかったのです。これはTimerを使用して、定期的に撮影画像をキャッシュするBitmap型のインスタンスを監視することで解決しました。


以上4つだけで2週間位は悶々としてましたが、解決したときは気分爽快でした。
他にも解決すべき課題はあるのですが、こだわり続けてもきりが無いので、一度公開した次第です。ぜひ楽しい写真を撮って頂ければ…と思います。