1.相机照片的尺寸只有几种固定的,2592×1936,2048×1536,1600×1200,1024×768,320×240等,这些尺寸还要物理设备支持才有。设置照片的尺寸(当然要设备支持),在给相机的参数设置中去设定。
2.自定义相机时照片预览拉伸。因为照片的尺寸跟自定义的SurfaceView比例不同的原因。先设置照片的尺寸,再根据照片的尺寸去设置预览的尺寸。
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Parameters parameters = camera.getParameters();// 获得相机参数
parameters.setPictureSize(1024, 768);
Size size = parameters.getPictureSize();
double w = size.width;
double h = size.height;
if (width > height) {
this.setLayoutParams(new LinearLayout.LayoutParams(
(int) (height * (w / h)), height));
} else {
this.setLayoutParams(new LinearLayout.LayoutParams(width,
(int) (width * (h / w))));
}
parameters.setPreviewSize(width, height); // 设置预览图像大小
parameters.setPictureFormat(PixelFormat.JPEG); // 设置照片格式
camera.setParameters(parameters);// 设置相机参数
camera.startPreview();
}
遇到setParameters failed 错误,是因为自定义SurfaceView控件的宽和高设置成了固定的大小,设置成wrap_content才行
<com.saya.CameraView
android:id="@+id/cameraView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</com.saya.CameraView>
传送门:http://www.devdiv.com/android_camera_-blog-67600-6759.html
自定义相机预览与照片尺寸设置
本文详细介绍了如何在Android应用中自定义相机预览,并调整照片尺寸以匹配自定义SurfaceView的比例。包括解决设置参数失败的问题,以及如何通过代码实现照片尺寸和预览尺寸的动态调整。
17万+

被折叠的 条评论
为什么被折叠?



