views:

84

answers:

1

Hey Guys,

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?

 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();
}
A: 

Got it working. I added..

parameters.set("orientation", "portrait");

CommonsWare gave me the idea it was that kind of issue thanks man :)

Ulkmun