安卓开发之自定义相机时图片变形问题
来源:互联网 发布:hadoop执行过程源码 编辑:程序博客网 时间:2024/05/18 00:45
在开发的过程中哦鞥到了一个在预览的时候预览中的图片一直在变形,所以在网上查了一个方法,记录下来:
首先是要获取一个最适合的预览尺寸
/** * 通过对比得到与宽高比最接近的尺寸(如果有相同尺寸,优先选择) * @return 得到与原宽高比例最接近的尺寸 */ protected static Point findBestPreviewSizeValue(List<Camera.Size> sizeList){ int bestX = 0; int bestY = 0; int size = 0; for (Camera.Size nowSize : sizeList){ int newX = nowSize.width; int newY = nowSize.height; int newSize = Math.abs(newX * newX) + Math.abs(newY * newY); float ratio = (float) (newY * 1.0 / newX); if(newSize >= size && ratio != 0.75){//确保图片是16:9 bestX = newX; bestY = newY; size = newSize; }else if(newSize < size){ continue; } } if(bestX > 0 && bestY > 0){ return new Point(bestX,bestY); } return null; }
第二步是将最适合的尺寸设置给相机
try { //为了适配部分手机setparams失败的问题,失败则不设置 try { Camera.Parameters parameters = camera.getParameters(); Point bestPreviewSizeValue1 = findBestPreviewSizeValue(parameters.getSupportedPreviewSizes()); parameters.setPreviewSize(bestPreviewSizeValue1.x,bestPreviewSizeValue1.y); camera.setParameters(parameters); }catch (Exception e){ LogUtils.logE(TAG,"set parameters fail"); } //进行横竖屏判断然后对图像进行校正 //如果是竖屏 if(context.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { camera.setDisplayOrientation(90); }else {//如果是横屏 camera.setDisplayOrientation(0); } //开启预览 camera.startPreview(); // 2如果要实现连续的自动对焦,这一句必须加 camera.cancelAutoFocus(); } catch (Exception e) { e.printStackTrace(); camera.release(); camera = null; }
阅读全文
0 0
- 安卓开发之自定义相机时图片变形问题
- 安卓自定义相机开发
- 自定义相机预览图片不变形
- 安卓开发——相机:拍照并处理图片
- 安卓笔记 自定义相机
- iOS开发-调用相机之自定义相机
- 关于安卓图片变形图片小计
- 安卓开发小米4,酷派 手机适配和调用系统相机相册做图片上传的问题
- 安卓开发之手机相机(Camera)应用
- 安卓Gallery之自定义图片边框
- 安卓之相机Camera
- 安卓自定义相机倒立解决方案
- 安卓自定义相机的实现
- 安卓 自定义相机,身份证拍照
- 安卓调用相机和自定义相机SurfaceView实现预览
- 安卓相册,相机图片选择
- 安卓开发之自定义Dialog
- 安卓开发之发送自定义广播
- Java后台之路(14)-JSP
- PHP自带方法验证邮箱、URL、IP是否合法
- thinking in java 阅读笔记 第四章 初始化和清除
- Vue.js的全局/局部组件填坑记
- test
- 安卓开发之自定义相机时图片变形问题
- 树学习(6)
- struts、spring 源码下载地址
- [LeetCode]600. Non-negative Integers without Consecutive Ones
- user版本qcom-system-daemon不编译问题
- Android控件TextView的实现原理分析
- ubuntu第一天
- 监控sql apply过程
- 【ActiveMQ】activemq 三种消息监听器