android - 在 Android 中设置相机图像大小

标签 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);

我的 Activity 实现了 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。

最佳答案

是的,提供了一些方法来获取相机支持的图片尺寸。 相机参数类提供相机支持图片尺寸的方法是getSupportedPictureSizes(); 使用此方法,您可以获得相机支持的尺寸。 代码 fragment 看起来像这样:-

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

希望对您有所帮助。

谢谢 纳瓦布

关于android - 在 Android 中设置相机图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3507771/

相关文章:

javascript - 画廊中的图像在方向改变时消失

android - 当扩展 LinearLayout subview 不可见时

java - 使用此差异的构造函数参数?

android - 使用 ContentProvider 在 Android 中升级 SQLite 数据库

jQuery 将列表中的图像源替换为下一个图像源,并从最后开始

image - Sitecore - 更新后图像 URL 中的前导斜杠

python - 如何使用 python 在表格中显示多个 jpeg 图像?

vb.net - 如何使用参数将新任务声明为 SUB

类型为 "void(*)(int wall) is incompatible with parameter of type "int 的 C++ 参数”

android - 检查设备谷歌帐户是否经过身份验证,然后才允许访问我的离线应用程序