我希望在手机旋转时不要改变相机的方向,使相机能够以任何方向拍摄垂直照片。目前,图片在除一个方向以外的所有方向上旋转不正确。测试HTC Incredible运行2.2:如何实现Android相机以任何屏幕方向拍照?
- 肖像模式有图像顺时针旋转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();
}
由于我想应用程序可与任何API级别等于或高于4兼容最大化的用户群,我如果答案不使用特定于更高API级别的任何内容,则更喜欢。谢谢!
不幸的是,setDisplayOrientation仅适用于API级别8以上:[link](http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation%28int%29) – 2011-03-24 04:24:15
旧版API的setDisplayOrientation替代方法是Camera.Parameters parameters = mCamera .getParameters(); parameters.set(“rotation”,度); mCamera.setParameters(parameters); – 2012-06-01 12:36:20