一行代码解决Android相机预览镜像的问题

二话不说,直接看解决方案(if语句中的代码):

Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(previewWidth, previewHeight);
if (mCameraId == CameraInfo.CAMERA_FACING_FRONT) {
    //设置镜像效果,支持的值为flip-mode-values=off,flip-v,flip-h,flip-vh;
    parameters.set("preview-flip", "flip-h");
}
mCamera.setParameters(parameters);

如上,parameters.set("preview-flip", "flip-h");就是解决镜像问题的关键代码。

在使用android相机接口进行预览时,大部分的前置摄像头的预览图都没有做镜像处理,因此需要手写处理方案。领导告诉我说,CameraParameters中除了提供标准的相机参数,还有一系列的key-value参数来控制相机,我们可以通过以下方式获取相机所支持的所有参数:

//查看相机参数,因为参数很多,所有要存储到文件中查看
String param = parameters.flatten();
sharedPreference.edit().putString("CameraParameters", param).commit();

然后我们查看SP文件中的数据,会看到flip-mode-values=off,flip-v,flip-h,flip-vh;preview-flip=off;这两块内容,其中flip-mode-values规定了翻转(镜像)模式的取值只能为off(关闭),flip-v(竖直翻转),flip-h(水平翻转),flip-vh(竖直+水平翻转),我们根据自己的需要,通过parameters.set("preview-flip", "flip-h");设置相应的值即可,然后开启预览就可以看到镜像翻转的预览图了。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值