package root.gast.image; import java.util.List; import android.app.Activity; import android.hardware.Camera; import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Size; import android.os.Build; import android.os.Bundle; import android.view.Surface; public class ManageCameraFasterActivity extends ManageCameraActivity { /** * Switching from one camera to another. Must stop the preview, free the * previous camera, and open the new camera, in that order. */ protected void advanceCamera() { mCamera.autoFocus(null); mCamera.setPreviewCallback(null); mCamera.stopPreview(); mCamera.release(); mDefaultCameraId = (mDefaultCameraId + 1) % mNumberOfCameras; mCamera = Camera.open(mDefaultCameraId); switchCamera(); } /** * In order to make image processing as fast as possible we use * the smallest preview image available. */ private void switchCamera() { setCameraDisplayOrientation(); Camera.Parameters cameraParameters = mCamera.getParameters(); List<Size> sizes = cameraParameters.getSupportedPreviewSizes(); int width = Integer.MAX_VALUE, height = Integer.MAX_VALUE; // choose the smallest preview available for (int i = 0; i < sizes.size(); i++) { Size s = sizes.get(i); if (s.width < width) { width = s.width; height = s.height; } } cameraParameters.setPreviewSize(width, height); } }