title: Camera Preview View, Horizontal when should be Vertical Worked fine on HTC Tattoo, broke on Nexus
body: <p>I'm using a Nexus One and the Camera displays horizontal when it should be vertical and vice versa. I've no idea what's wrong. The code works fine on a HTC tattoo. Anyone have any idea what's wrong?</p>
  
  <pre><code> class Preview extends SurfaceView implements SurfaceHolder.Callback {
  SurfaceHolder mHolder;
  Camera mCamera;
  
  Preview(Context context) {
      super(context);
  
      // Install a SurfaceHolder.Callback so we get notified when
      //the
      // underlying surface is created and destroyed.
      mHolder = getHolder();
      mHolder.addCallback(this);
      mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  }
  
  public void surfaceCreated(SurfaceHolder holder) {
      // The Surface has been created, acquire the camera and tell
      //it where
      // to draw.
      mCamera = Camera.open();
      try {
          mCamera.setPreviewDisplay(holder);
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
  }
  
  public void surfaceDestroyed(SurfaceHolder holder) {
      // Surface will be destroyed when we return, so stop the
      //preview.
      // Because the CameraDevice object is not a shared resource,
      //it's very
      // important to release it when the activity is paused.
      mCamera.stopPreview();
      mCamera = null;
  }
  
  public void surfaceChanged(SurfaceHolder holder, int format, int
  w, int h) {
      // Now that the size is known, set up the camera parameters
      //and begin
      // the preview.
      Camera.Parameters parameters = mCamera.getParameters();
      parameters.setPreviewSize(800, 480);
      mCamera.setParameters(parameters);
      mCamera.startPreview();
  }
  </code></pre>