在Android中设置相机图像大小

时间:2010-08-17 23:31:31

标签: 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() + ")");
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。

2 个答案:

答案 0 :(得分:20)

是的,提供了一些方法来获取相机支持的图片尺寸。 通过摄像机提供支持的图像大小的参数类型的方法是getSupportedPictureSizes(); 使用此方法,您可以通过相机获得支持的大小。 代码段如下所示: -

Camera camera = Camera.open();
Parameters params = camera.getParameters();
List<Camera.Size> sizes = params.getSupportedPictureSizes();

我希望这会对你有所帮助。

由于 纳瓦布

答案 1 :(得分:2)

我找到了答案,显然我自己的屏幕分辨率不是相机支持的尺寸。我不知道相机只能支持某些尺寸,因为我正在使用1.6 SDK进行编程。

有没有办法检索支持的相机尺寸为1.5 / 1.6?