//Here is the example for dummy surface view. public void takePictureNoPreview(Context context) { // open back facing camera by default Camera myCamera=Camera.open(); if(myCamera!=null) { try { //set camera parameters if you want to //... // here, the unused surface view and holder SurfaceView dummy=new SurfaceView(context) myCamera.setPreviewDisplay(dummy.getHolder()); myCamera.startPreview(); myCamera.takePicture(null, null, getJpegCallback()): } finally { myCamera.close(); } } else { //booo, failed! } private PictureCallback getJpegCallback() { PictureCallback jpeg=new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { FileOutputStream fos; try { fos = new FileOutputStream("test.jpeg"); fos.write(data); fos.close(); } catch (IOException e) { //do something about it } } }; } } //Selecting front facing camera. private Camera openFrontFacingCameraGingerbread() { int cameraCount = 0; Camera cam = null; Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); cameraCount = Camera.getNumberOfCameras(); for ( int camIdx = 0; camIdx < cameraCount; camIdx++ ) { Camera.getCameraInfo( camIdx, cameraInfo ); if ( cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT ) { try { cam = Camera.open( camIdx ); } catch (RuntimeException e) { Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage()); } } } return cam; }
转载于:https://www.cnblogs.com/Blessing/archive/2012/09/07/2674468.html