大家平时都会调用到Camera 这个API,在设置Camera.Paramera的参数的时候,有一个预览大小。也就是:

setPreviewSize(int width, ing height)

这个相机的大小不能随便设置,如果设置了不可接受的值,程序会崩溃掉。

现在给大家提供一个很好用的方法。

private Size getBestSupportedSize(List sizes), int width, int height) {

Size bestSize = sizes.get(0);

int largestArea = bestSize.width * bestSize.height;

for (Size s : sizes) {

int area = s.width * s.height;

if (area > largestArea) {

bestSize = s;

largestArea = area;

}

}

return bestSize;

}

至于这个方法中的几个参数从哪里来的。我们需要在SurfaceHolder的Callback回调方法中来初始化相机的。

holder.addCallback(new SurfaceHolder.Callback(){

...

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

Camera.Parameters parameters = mCamera.getParameters();

Size s = getBestSupportedSize(parameters.getSupportedPreViewSizes(), w, h);

parameters.setPreviewSeze(s.width, s.height);

....

}

});

我们通常拍完照之后还会设置图片的大小,其实也是一样的,Camera.Parameter有一个方法:

getSupportedPictureSizes()

s = getBestSupportedSize(parameters.getSupportedPictureSizes(), w, h);

parameters.setPictureSize(s.width, s.height);

小方法,大技巧。这是在 Android 权威指南这本书上看到的,记录下笔记。

android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小相关推荐

  1. 找出数组中第k大小的数,输出数所在的位置

    找出数组中第k大小的数,输出数所在的位置 /*写一段程序,找出数组中第k大小的数,输出数所在的位置.例如{2,4,3,4,7}中,第一大的数是7,位置在4. 第二大.第三大的数都是4,位置在1.3随便 ...

  2. PCB封装设计指导(二)如何阅读Datasheet,找出对应的封装尺寸和信息

    PCB封装设计指导(二)如何阅读Datasheet,找出对应的封装尺寸和信息 所有的封装的建立都是根据Datasheet来建立的,脱离了Datasheet的封装是没有可靠性和保障的. 所以如何看懂Da ...

  3. android拍照功能编程,android实现手机App实现拍照功能示例

    实现手机App实现拍照功能结果如下 第一步: activity_takephoto.xml布局用SurfaceView xmlns:tools="http://schemas.android ...

  4. html5 android 拍照上传,android webview使用html5 上传相册、拍照照片

    本人编程新手,这次做的功能是android webview 嵌入HTML5的页面,页面中有一个标签,iOS直接就支持,但android中不支持,网上的帖子说是因为android屏蔽了文件上传功能还是怎 ...

  5. 项目版本号大小比较,找出最大版本号

    项目版本号大小比较 软件版本号格式一般为X.Y.Z( Major.Minor.Patch),X为主版本号,Y为次版本号,Z为修订号.例如:1.12.123. 最近在项目中碰到一个业务:需要从版本数组中 ...

  6. android 拍照固定区域,android相机区域拍照,快速集成

    使用相机拍摄指定区域,自己封装了个工具类,直接使用就可以 代码使用如下 public class MainActivity extends Activity implements OnClickLis ...

  7. android搜索app下载地址,如何找出APP的URL Scheme

    今日壁纸 温馨提示:先看文末总结或先看(3)WEB端 什么是APP URL scheme 玩手机经常会碰到浏览器里提示即将跳转到某APP,或者微信里提醒即将打开某APP,这其中的原理,一般就是通过UR ...

  8. android 拍照换头像,Android调用相机拍照,裁剪及更换头像功能的实现

    1,点击弹出popwindow,选择相机或者相册 这个就不多说了,在OnclickListener里写弹出的窗口位置和样式. 2,选择拍照功能,调用手机相机. ``` //调用相机 Intent in ...

  9. android拍照截图组件,Android截图命令screencap与视频录制命令screenrecord(示例代码)...

    查看帮助命令[email protected] ~$ adb shell screencap -v screencap: invalid option -- v usage: screencap [- ...

最新文章

  1. 谷歌新智能体Dreamer将亮相NeurIPS 2019,数据效率比前身PlaNet快8个小时
  2. CentOS软/硬RAID安装方法
  3. mysql 转成树_mysql整形转换的坑
  4. 配置虚拟机和网络配置
  5. 白话Elasticsearch68-ES生产集群部署重要的操作系统设置
  6. 31模板方法(Template Method)
  7. 小程序类似抖音视频整屏切换
  8. 问题:get_params() missing 1 required positional argument: 'self' 之解决
  9. 2008下mysql补丁_windows Server 2008 R2安装Mysql 8的打补丁顺序
  10. VUE使用百度地图API实现三维地球
  11. 【bigmp4.com】AI 视频补帧无损放大工具介绍
  12. python大神的成长之路普通话三分钟_我的成长之路普通话考试讲话三分钟范文
  13. selenium结合sikuliX操作Flash网页
  14. 疯狂Python讲义之变量和简单类型--深入使用字符串笔记4
  15. 【每天一个Python小知识】用yaml的yaml.safe_load()方法读取配置文件中的参数
  16. 超导体计算机采用纳米技术研制的计算机,在高温超导体加持下,量子效应的量子计算机,或将迎来重大突破!...
  17. Java程序设计教程(第三版) 雍俊海 7.3 答案/代码
  18. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用46
  19. surface linux内核,Surface系列电脑Linux拯救指南
  20. 微信公众号内置地图开发ios苹果不显示地图

热门文章

  1. python初级进阶篇
  2. python中__del__使用方法
  3. Python基础(七)--模块和包
  4. vs中html如何设计分页_如何在电路设计中使用负载线(Load Line)?
  5. 我有文章了,但也不想搞学术了
  6. ICLR最高分论文揭秘模型泛化,GNN是潜力股
  7. 全链路压测平台(Quake)在美团中的实践
  8. 论文浅尝 | SPARQL 语言的 ASK 查询表达性研究进展
  9. 论文浅尝 | 基于平行新闻的Bootstrapping关系抽取
  10. 玩转算法面试-第三章