Android 为什么Camera.setParameters(Camera.Parameters)不能在索尼爱立信X10和Droid上工作?

Android 为什么Camera.setParameters(Camera.Parameters)不能在索尼爱立信X10和Droid上工作?,android,camera,Android,Camera,在索尼爱立信X10或Droid上使用摄像头API时,有人遇到过奇怪的行为吗 例如,以下代码在这些设备上不起作用。因此,我得到了很多关于市场的负面反馈,这些反馈转化为许多被取消的订单 mParameters.set("rotation", orientation); mParameters.set("jpeg-quality", img_quality); mParameters.set("picture-size", "1024x768"); mCamera.setParameters(mPar

在索尼爱立信X10或Droid上使用摄像头API时,有人遇到过奇怪的行为吗

例如,以下代码在这些设备上不起作用。因此,我得到了很多关于市场的负面反馈,这些反馈转化为许多被取消的订单

mParameters.set("rotation", orientation);
mParameters.set("jpeg-quality", img_quality);
mParameters.set("picture-size", "1024x768");
mCamera.setParameters(mParameters);

你能提出一个实现同样目标的替代方法吗?谢谢。

您不能只在相机参数中设置随机值,因为您不知道硬件是否支持,所以您需要先询问

mCamera = Camera.open();
Camera.Parameters params = mCamera.getParameters();
List<Size> sizes = params.getSupportedPictureSizes();
// See which sizes the camera supports and choose one of those
mSize = sizes.get(0);
params.setPictureSize(mSize.width, mSize.height);
mCamera.setParameters(params);
mCamera=Camera.open();
Camera.Parameters params=mCamera.getParameters();
列表大小=params.getSupportedPictureSizes();
//查看相机支持的尺寸,然后选择其中一种
mSize=size.get(0);
参数setPictureSize(mSize.width,mSize.height);
mCamera.setParameters(参数);

您必须首先确定活动的方向,然后将Orientación评分:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
mCamera.setDisplayOrientation(90);

好的,这解释了为什么“图片大小”不起作用,尽管我使用的被拒绝的大小是相当标准的“1024x768”。。。你对“旋转”有什么想法吗?!这对我来说更重要,因为如果这不起作用,图像会随机旋转90或-90度。谢谢您的解决方案仅适用于Android 2.0及更高版本的框架。你知道如何在1.5和1.6上获得支持的图片大小吗?看起来方向问题是G1上的一个已知问题。这个线程有一个解决方案。至于获得1.6及以下支持的图片大小,它是不受支持的,所以最好的建议是不要管它。