示例#1
0
 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);
   }
 }
示例#2
0
  @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();
  }