I'm using the following custom SurfaceView for some AR task. I set android:screenOrientation="portrait"
for my activity in the AndroidManifest, but the image is rotated by 90 deg with weird aspect ratio. I'm using a Samsung Galaxy S...
Anybody can help?
public class CustomCameraView extends SurfaceView
{
Camera camera;
SurfaceHolder previewHolder;
SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() {
public void surfaceCreated(SurfaceHolder holder) {
try {
camera = Camera.open();
camera.setPreviewDisplay(previewHolder);
} catch (IOException e) {
e.printStackTrace();
}
}
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h)
{
Parameters params = camera.getParameters();
params.setPreviewSize( 800, 480);
params.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(params);
camera.startPreview();
}
public void surfaceDestroyed(SurfaceHolder arg0)
{
camera.stopPreview();
camera.release();
}
};
public CustomCameraView(Context context)
{
super(context);
previewHolder = this.getHolder();
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
previewHolder.addCallback(surfaceHolderListener);
}
protected void onDraw (Canvas canvas)
{
super.onDraw(canvas);
}
public void closeCamera()
{
if(camera != null)
camera.release();
}
}