[原]android camera中的预览图片变形的解决办法

本文记录了解决Android相机预览图片变形的问题。原因是布局界面没有按预览图与实际图片的比例缩放。每部手机有多组预览和图片尺寸,选择比例相同的尺寸可以避免变形。在初始化相机时设置相同比例的预览图尺寸和SurfaceView尺寸,但魅族手机可能无法获取这些尺寸。
摘要由CSDN通过智能技术生成

之前处理相机模块的时候,遇到了一个问题,就是调用系统的camera的时候在拍照预览界面的时候看到的照片是变形的。不晓得大家有没有和我遇到一样的问题,后来发现是我的布局界面没有按对应的比例进行缩放导致的。后来参考了系统camera中的代码解决了这个问题,特此记录下来。每部手机中设置了好几组预览图片的尺寸、以及实际图片的尺寸。只有当预览图的尺寸比例和实际图片的比例相同的时候就不会出现变形的情况。下面一组数据是我测试中记录的一组数据:

02-09 19:00:40.831: D/tag(27507): pictureSizeValueString : 1280x960,1600x1200,2048x1536,2592x1456,2592x1936
02-09 19:00:40.831: D/tag(27507): previewSizeValueString : 176x144,320x240,352x288,640x480,720x480,720x576,848x480,1280x720

上面红色部分标记的都是具有相同比例的尺寸,都为4:3,而其他比例却不尽相同。故我们只要在初始化camera的时候给其设置好相同比例的预览图尺寸和实际图的尺寸,并且设置你的SurfaceView或者VideoView的尺寸比例相同就行了。但是要注意的是:魅族手机貌似取不到这些值。

复制代码
@Override
    public void surfaceCreated(SurfaceHolder holder) {
        try {
            //设置参数
            mCamera = Camera.open();
            //摄像头画面显示在Surface上
            mCamera.setPreviewDisplay(surfaceHolder);
            
            Parameters parameters = mCamera.getParameters();
        } catch (IOException e) {
            if (mCamera != null) mCamera.release(); 
            mCamera = null;
        }
        
        if (mCamera == null) {
            finish();
            return ;
        }
        u
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值