public void moveTo(float x, float y, float z) { this.x = x; this.y = y; this.z = z; updateMatrix(); for (CameraListener l : listeners) { l.cameraMoved(this.x, this.y, this.z); } }
@Override public synchronized void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // If your preview can change or rotate, take care of those events here. // Make sure to stop the preview before resizing or reformatting it. if (cameraMode != CAMERA_MODE.PHOTO_MODE && mHolder.getSurface() == null) { // preview surface does not exist return; } else if (holder.getSurface() == null) { // preview surface does not exist return; } if (cameraMode == CAMERA_MODE.PHOTO_MODE) { try { mCamera.stopPreview(); mCamera.setPreviewDisplay(mHolder); } catch (Exception e) { Log.e(TAG + " Error starting camera preview--> ", e.getMessage()); } new Thread( new Runnable() { @Override public void run() { // stop preview before making changes Parameters mParameters = mCamera.getParameters(); List<Camera.Size> pictureSizes = mParameters.getSupportedPictureSizes(); List<int[]> fps = mParameters.getSupportedPreviewFpsRange(); // List<Camera.Size> previewSizes = mParameters // .getSupportedPreviewSizes(); // // You need to choose the most appropriate previewSize // for // your // app // Camera.Size previewSize = previewSizes.get(1);// .... // select // one // of // // previewSizes here // This is the default resolution of glass 640 x 360. It is // also // available in the preview size list. This should only be // set // when we want to take a picture otherwise we will use the // default preview // mParameters.setPreviewSize(640, 360); Camera.Size picturesize = pictureSizes.get(0); mParameters.setPictureSize(picturesize.width, picturesize.height); mParameters.setPreviewFpsRange(fps.get(5)[0], fps.get(5)[1]); // mParameters.setRotation(90); onOrientationChanged(mParameters, Configuration.ORIENTATION_LANDSCAPE); mCamera.setParameters(mParameters); mHandler.post( new Runnable() { @Override public void run() { mCamera.startPreview(); } }); } }) .start(); } if (mCallback != null) mCallback.onCameraInit(); }