プレビュー用SurfaceView関連
SurfaceViewを利用してプレビューを表示する場合、表示しているSurfaceViewには手を出せないんで、Viewを重ねて処理している方が多いかと思います。
この場合Resume時やレイアウトの変更時に上に重ねたViewが下に行っちゃったりします。
対処としては、Resume時、レイアウト変更時に上に重ねたViewにbringToFront()をかけてやる。
これで今のところうまくいってます。
あと、setPreviewSizeでプレビューのサイズを指定しても実際に表示されるプレビューはSurfaceViewのサイズになります。
なので比率がおかしくなったりしないようにカメラのPreviewSizeに合わせてSurfaceView側の大きさを変えましょう。
それとsurfaceDestroyedイベントできちんとカメラを開放しましょう。でないと他のアプリでカメラが使えなくなったりします。解放はこんな感じで↓
public void surfaceDestroyed(SurfaceHolder holder) { if(camera != null){ camera.setPreviewCallback(null); camera.stopPreview(); camera.release(); } camera = null; }
0 件のコメント:
コメントを投稿