android camera2 获取摄像头支持的分辨率

41的for循环我注释了,代码是获取最匹配的分辨率。

 private Size getMatchingSize2(){Size selectSize = null;try {CameraManager mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);for (final String cameraId : mCameraManager.getCameraIdList()) {CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(cameraId);StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);Size[] sizes = streamConfigurationMap.getOutputSizes(ImageFormat.JPEG);DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); //因为我这里是将预览铺满屏幕,所以直接获取屏幕分辨率int deviceWidth = displayMetrics.widthPixels; //屏幕分辨率宽int deviceHeigh = displayMetrics.heightPixels; //屏幕分辨率高Log.e(TAG, "getMatchingSize2: 屏幕密度宽度=" + deviceWidth);Log.e(TAG, "getMatchingSize2: 屏幕密度高度=" + deviceHeigh);/*** 循环40次,让宽度范围从最小逐步增加,找到最符合屏幕宽度的分辨率,* 你要是不放心那就增加循环,肯定会找到一个分辨率,不会出现此方法返回一个null的Size的情况* ,但是循环越大后获取的分辨率就越不匹配*/
//              for (int j = 1; j < 41; j++) {for (int i = 0; i < sizes.length; i++) { //遍历所有SizeSize itemSize = sizes[i];Log.e(TAG, "当前itemSize 宽=" + itemSize.getWidth() + "高=" + itemSize.getHeight());//判断当前Size高度小于屏幕宽度+j*5  &&  判断当前Size高度大于屏幕宽度-j*5  &&  判断当前Size宽度小于当前屏幕高度if (itemSize.getHeight() < (deviceWidth ) && itemSize.getHeight() > (deviceWidth )) {if (selectSize != null) { //如果之前已经找到一个匹配的宽度if (Math.abs(deviceHeigh - itemSize.getWidth()) < Math.abs(deviceHeigh - selectSize.getWidth())) { //求绝对值算出最接近设备高度的尺寸selectSize = itemSize;continue;}} else {selectSize = itemSize;}}}if (selectSize != null) { //如果不等于null 说明已经找到了 跳出循环break;}
//              }}} catch (CameraAccessException e) {e.printStackTrace();}Log.e(TAG, "getMatchingSize2: 选择的分辨率宽度="+selectSize.getWidth());Log.e(TAG, "getMatchingSize2: 选择的分辨率高度="+selectSize.getHeight());return selectSize;}

我的手机可以支持的:

当前itemSize 宽=3968高=2976
    当前itemSize 宽=640高=480
    当前itemSize 宽=320高=240
    当前itemSize 宽=1280高=720
    当前itemSize 宽=1920高=1080
    当前itemSize 宽=3264高=1840
    当前itemSize 宽=3264高=2448

camera的获取方法:

mCamera = Camera.open(mCamId);
        Camera.Parameters params = mCamera.getParameters();

List<Size> pictureSizes = params.getSupportedPictureSizes();
        int length = pictureSizes.size();
        for (int i = 0; i < length; i++) {
            Log.e("SupportedPictureSizes","SupportedPictureSizes : " + pictureSizes.get(i).width + "x" + pictureSizes.get(i).height);
        }

List<Size> previewSizes = params.getSupportedPreviewSizes();
        length = previewSizes.size();
        for (int i = 0; i < length; i++) {
            Log.e("SupportedPreviewSizes","SupportedPreviewSizes : " + previewSizes.get(i).width + "x" + previewSizes.get(i).height);
        }

android camera2获取摄像头支持的分辨率相关推荐

  1. V4L2 获取设备支持的分辨率

    {//获取摄像头所支持的分辨率 enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;     struct v4l2_fmtdesc fmt_1 ...

  2. Android适配 获取手机屏幕的分辨率

    如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情. 首先:你需要在AndroidManifest.xml文件的<man ...

  3. android4k分辨率,代码显示Android 4.3将支持4K分辨率

    据科技网站Android Authority报道,Android阵营已经将手机分辨率推进到1080p时代,2014年6英寸2K分辨率(2560×1600)手机也将问世,但科技无止境,谷歌最新发布的An ...

  4. [译] Android 的多摄像头支持

    原文地址:Camera Enumeration on Android 原文作者:Oscar Wahltinez 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译 ...

  5. Android 双usb 摄像头支持

    公司有一款产品需要支持双USB摄像头,标准的Android设备只支持同时打开一个camera,若要支持两个显示需要修改rk3288 源码, hardware/rockchip/camera/Camer ...

  6. ffmpeg获取设备支持的分辨率_Qt音视频开发6-ffmpeg解码处理

    一.前言 采用ffmpeg解码,是所有视频监控开发人员必备的技能,绕不过去的一个玩意,甚至可以说是所有音视频开发人员的必备技能.FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开 ...

  7. Android 关于获取摄像头帧数据解码

    由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open(); Camera.Param ...

  8. android关于获取摄像头帧数据转成图片

    第一部分: 由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open(); Camera ...

  9. ffmpeg获取设备支持的分辨率_短视频字幕提取合成超简单,掌握ffmpeg这个小技巧

    引言 现在的短视频非常流行.大多数情况下我们会开着音量或者戴着耳机收看视频.但有些时候不是太方便,如果视频能有一个字幕就好了. 好消息是,字幕制作的软件很专业很好用,而且上手超级简单. 坏消息是,如何 ...

最新文章

  1. 操作无法完成后台打印程序无法运行
  2. Linux(CentOS 7_x64位)系统下安装ACPYPE
  3. 短代码 html,WordPress的短代码问题嵌入HTML格式
  4. C#为什么会这么慢之命运之终章-真理篇for firelong
  5. 【渝粤教育】广东开放大学 现代服务业管理 形成性考核 (21)
  6. 今天开通了博客园帐号
  7. python模块用法教程_Python学习之asyncore模块用法实例教程
  8. 一步步教你开发鸿蒙系统应用,So Easy
  9. java如何对单词排序_java - 如何按第二个单词对列表进行排序? [重复] - SO中文参考 - www.soinside.com...
  10. LoadRunner11完美破解
  11. 计算机酷我音乐文件夹,酷我音乐缓存文件在哪?打开酷我音乐缓存文件的方法...
  12. 【Windows】六种正确清理C盘的方法,解决你的红色烦恼
  13. 21秋期末考试建设工程法规10221k1
  14. 模式识别学习笔记(8)——隐马尔可夫模型
  15. C/C++ - http协议发送字段,文件,单个和多张图片
  16. 【官档整理】原生 MSDN 纯净版 WIN PE 创建 下载方法
  17. 2022劳务员-岗位技能(劳务员)考试模拟100题及在线模拟考试
  18. 可爱猫python_安装 · 【可爱猫】 微信机器人的 http插件 · 看云
  19. linux终端下载fortran,Linux下安装g77 fortran complier过程
  20. 赛门铁克软件恢复服务器系统,重装赛门铁克网络版杀毒软件服务器端后恢复客户端的管理...

热门文章

  1. socket sock inet_sock 等关系
  2. 删除svn同步文件目录
  3. frontpage 编辑html 乱码,在 FrontPage 2003 中编辑 PHP 及乱码问题
  4. 鸿蒙升级变动,天天吹鸿蒙,视频向你展示鸿蒙升级后到底有什么变化
  5. python nlp文本摘要_理解文本摘要并用python创建你自己的摘要器
  6. mysql在线复制_mysql的两种复制模式
  7. 利用计算机模拟人脑进行演绎,2014年4月自学考试计算机应用技术试题
  8. 特别浅的渐变蓝色在html里,javascript – 渐变色淡淡的3种颜色
  9. secureCrt开启oracle
  10. zemax图像模拟_zemax2014免费版