Официальный метод работы с камерой в Android такой:
- создать камеру и задать ей правильные параметры
- задать ей SurfaceView
- зарегистрировать callback
- принять кадр
- ???
- PROFIT!!!
Те, кто шаг номер два пропускает — ССЗБ.
Остальным рекомендую обратить внимание на метод SurfaceView::setZOrderMediaOverlay. Правильное его использование предотвращает чехарду с Z-сортировкой слоев после pause/resume. В противном случае SurfaceView камеры будет постоянно то вылезать на передний план, то прятаться за задником сцены.