在Android中设置相机图像大小

在Android中设置相机图像大小,android,image,parameters,camera,Android,Image,Parameters,Camera,目前,我正在尝试将我的摩托罗拉Droid手机上的相机设置为拍摄与我的屏幕大小(854 x 480像素)匹配的图像,并且我正在尝试通过相机的参数来实现以下目标: Camera.Parameters parameters = this.mCamera.getParameters(); Log.i(TAG, "CAMERA SIZE: (" + this.mCameraView.getWidth() + ", " + this.mCameraView.getHeight() + ")"); param

目前,我正在尝试将我的摩托罗拉Droid手机上的相机设置为拍摄与我的屏幕大小(854 x 480像素)匹配的图像,并且我正在尝试通过相机的参数来实现以下目标:

Camera.Parameters parameters = this.mCamera.getParameters();
Log.i(TAG, "CAMERA SIZE: (" + this.mCameraView.getWidth() + ", " + this.mCameraView.getHeight() + ")");
parameters.setPictureSize(this.mCameraView.getWidth(), this.mCameraView.getHeight());
this.mCamera.setParameters(parameters);
this.mCamera.takePicture(null, null, this);
我让我的活动实现onPictureTaken的Camera.PictureCallback方法(不包括日志调用),因此当调用takePicture方法时,它会运行此方法:

@Override
public void onPictureTaken(byte[] data, Camera camera) {
    Bitmap image = BitmapFactory.decodeByteArray(data, 0, data.length);
    //Size imageSize = camera.getParameters().getPictureSize();
    //image = Bitmap.createBitmap(image, 0, 0, imageSize.width, imageSize.height);
    this.mCameraView.setBackgroundDrawable(new BitmapDrawable(image));
}
但出于某种原因,我的相机是1280 x 960。这是相机可以拍摄图像的最小尺寸吗?从日志调用中,我可以看到相机的参数仍然设置为图片大小为854 x 480,但图像显示为1280 x 960。我是否解码图像错误,是否设置相机参数错误,或者是否做了其他错误的事情

提前感谢您提供的任何帮助


您好,celestialorb。

我找到了答案,显然我自己的屏幕分辨率不是相机支持的尺寸。当我使用1.6 SDK编程时,我不知道摄像头只能支持某些尺寸


是否有任何方法可以检索1.5/1.6支持的摄像头尺寸?

是的,提供了获取摄像头支持的图片尺寸的方法。 摄像头的Parameters类通过摄像头提供支持的图片大小的方法是getSupportedPictureSizes(); 使用此方法,可以通过摄影机获取支持的大小。 代码段如下所示:-

Camera camera = Camera.open();
Parameters params = camera.getParameters();
List<Camera.Size> sizes = params.getSupportedPictureSizes();
Camera=Camera.open();
Parameters params=camera.getParameters();
列表大小=params.getSupportedPictureSizes();
我希望这对你有帮助

谢谢
Nawab

Camera已经被弃用,取而代之的是Camera2,但我在新的API中没有找到类似的方法