【发布时间】:2011-07-20 06:53:50
【问题描述】:
我希望相机的方向在手机旋转时不会改变,从而允许相机在任何方向拍摄一张直立的照片。目前,除了一个方向,图片在所有方向上都旋转不正确。在运行 2.2 的 HTC Incredible 上测试:
- 纵向模式的图像旋转90度,旋转它应该是什么。
- 装置从肖像逆时针旋转,产生180度的图像。
- 从肖像顺时针旋转的装置产生具有正确方向的图像。
这里是相机实现的相关代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
// Set up camera's SurfaceView and SurfaceHolder
surfaceView = (SurfaceView) findViewById(R.id.camera_surface);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Camera.Parameters p = camera.getParameters();
p.setPreviewSize(width,height);
}
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
camera.release();
}
camera.startPreview();
}
由于我希望应用程序与任何等于或高于 4 的 API 级别兼容以最大化用户群,我希望答案不使用特定于更高 API 级别的任何内容。谢谢!
【问题讨论】: