我正在使用以下自定义SurfaceView进行某些AR任务。我在AndroidManifest中为我的活动设置了android:screenOrientation="portrait"
,但图像以奇怪的宽高比旋转了90度。我正在使用三星Galaxy S ......
有人可以帮忙吗?
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();
}
}
答案 0 :(得分:0)
许多设备上的相机应用程序都有一个缺陷,它只能在横向模式下正确显示,将显示屏锁定为横向模式可修复此问题,但还有其它问题(比如强迫您管理布局)
等...
某些设备+ sdk版本按照文档和网络样本纵向工作,有些不是我只是期望他们不会并实现仅景观路线,有点痛苦但它的工作原理