プレビュー用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 件のコメント:
コメントを投稿