打开摄像头预览
private Camera mCamera;
private SurfaceView mCameraView;
private SurfaceView mCameraViewHolder;
mCameraView = (SurfaceView)this.findViewById(R.id.surfaceView1);
mCameraViewHolder = mCameraView.getHolder();
mCameraViewHolder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera = Camera.open();
Camera.Parameters parameters = mCamera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
mCamera.setPreviewDisplay(mCameraViewHolder);
mCamera.setDisplayOrientation(90);
mCamera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
mCamera.setDisplayOrientation(90);
mCamera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mCamera.release();
mCameraView = null;
mCameraViewHolder = null;
mCamera = null;
}
});
点击界面拍照 获取Bitmap
mCameraView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mCamera != null){
mCamera.autoFocus(new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
if (success) {
camera.takePicture(null, null, new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
tmpBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
mCamera.startPreview();
}
});
}
}
});
}
}
});