【2013.07.16】关于自定义相机照片尺寸设定和预览图片拉伸处理

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值