class
Preview
extends
SurfaceView
implements
SurfaceHolder.Callback {
private
SurfaceHolder mHolder;
private
Camera camera;
Preview(Context context) {
super
(context);
mHolder = getHolder();
mHolder.addCallback(
this
);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public
Camera getCamera() {
return
camera;
}
public
void
surfaceCreated(SurfaceHolder holder) {
try
{
int
cameraId = findFrontSideCamera();
camera = Camera.open(cameraId);
camera.setDisplayOrientation(
90
);
camera.setPreviewDisplay(holder);
camera.setPreviewCallback(
new
PreviewCallback() {
public
void
onPreviewFrame(
byte
[] data, Camera camera) {
}
});
}
catch
(Exception e) {
e.printStackTrace();
}
}
public
void
surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera =
null
;
}
public
void
surfaceChanged(SurfaceHolder holder,
int
format,
int
w,
int
h) {
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(w, h);
camera.setParameters(parameters);
camera.startPreview();
}
}