在Android中设置相机图像大小

目前,我正在尝试将我的相机放在摩托罗拉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,data.length);
    //Size imageSize = camera.getParameters().getPictureSize();
    //image = Bitmap.createBitmap(image,imageSize.width,imageSize.height);
    this.mCameraview.setBackgroundDrawable(new BitmapDrawable(image));
}

由于某些原因,我的相机正在拍摄1280 x 960.这是相机可以捕获图像的某种最小尺寸?从日志调用我可以看到,相机的参数仍然设置为854 x 480的图片大小,但图像不断出现为1280 x 960.我错误地解码图像,我设置相机的参数不正确,或者是我做别的什么错了?

提前感谢您可以给予任何帮助!

问候,celestialorb.

解决方法

是的,有提供方法来获得相机支持图片大小.
相机提供支持图片大小的参数类相机的方法是getSupportedPictureSizes();
使用此方法,您可以通过相机获取支持的大小.
代码段将如下所示:
Camera camera = Camera.open();
Parameters params = camera.getParameters();
List<Camera.Size> sizes = params.getSupportedPictureSizes();

我希望这将有助于你.

谢谢纳瓦布

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...