从Android 2.3 Gingerbread开始,原生支持前置摄像头。下面我们看看如何在程序里来调用前置的摄像头。

第一种方式是采用MediaStore,调用系统原生的相机。

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);intent.putExtra("camerasensortype", 2); // 调用前置摄像头intent.putExtra("autofocus", true); // 自动对焦intent.putExtra("fullScreen", false); // 全屏intent.putExtra("showActionIcons", false);startActivityForResult(intent, PICK_FROM_CAMERA);

另外一种方式是采用Camera框架,以前版本的SDK里只有Camera.open()方法来调用后置摄像头,现在此方法接受一个参数来确定是前置摄像头还是后置摄像头。我们还根据新的Camerainfo类和getCameraInfo方法来获取Android设备上的详细的摄像头信息,getNumberOfCameras()来获取摄像头的数量。典型的调用方式如下:

    int cameraCount = 0;Camera cam = null;Camera.CameraInfo cameraInfo = new Camera.CameraInfo();cameraCount = Camera.getNumberOfCameras(); // get cameras numberfor ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) {Camera.getCameraInfo( camIdx, cameraInfo ); // get camerainfoif ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_FRONT ) { // 代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置try {            cam = Camera.open( camIdx );} catch (RuntimeExceptione) {e.printStackTrace();}}
 

     采用Camera框架的好处在于自身提供了大量的API例如setDisplayOrientation、Camera.Parameters来实现强大的功能,另外结合urfaceHolder.Callback、ShutterCallback和PictureCallback等接口后可以进行界面和功能的自定义,可以自由的实现所需要的界面布局和图像处理效果。例如如下的界面:


在Android系统中调用系统前置摄像头相关推荐

  1. Android开发中调用系统窗口的方法

    //直接拨号 Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:12345678")); start ...

  2. 安卓java摄像机的_在Android系统中调用系统前置摄像头

    从Android 2.3 Gingerbread开始,原生支持前置摄像头.下面我们看看如何在程序里来调用前置的摄像头. 第一种方式是采用MediaStore,调用系统原生的相机. Intent int ...

  3. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

  4. Android多层嵌套Fragment中调用系统相机拍照以及裁剪的相关问题解决

    多层嵌套Fragment中调用系统相机拍照.裁剪 最近公司项目有频繁使用相机拍照的需求,然后频繁的实际使用过程中遇到很多大大小小的坑,在此记录下. (ps.关于一些拍照后图片旋转.裁剪设置返回数据为t ...

  5. 安卓手机如何打开php文件夹,Android_Android中调用系统的文件浏览器及自制简单的文件浏览器,调用系统自带的文件浏览器- phpStudy...

    Android中调用系统的文件浏览器及自制简单的文件浏览器 调用系统自带的文件浏览器这很简单: /** 调用文件选择软件来选择文件 **/ private void showFileChooser() ...

  6. C#在winform中调用系统控制台输出

    SeayXu 原文C#在winform中调用系统控制台输出 在Winform程序中有时候调试会通过Console.Write()方式输出一些信息,这些信息是在Visual Studio的输出窗口显示. ...

  7. android拍照保存到系统相册,调用系统相机拍照,并且保存到系统相册的一般套路...

    最近遇到也一个需求:调用系统相机拍照,并且照片可以在系统相册显示. 关于照片显示在系统相册这个问题,因为安卓机型太多了,各大厂商都对原生系统进行了不同程度的定制,所以在一般情况下,有的手机会把图片直接 ...

  8. iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )...

    在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用: 查看更多iPhone应用程序的调用和第三方应用程序的 ...

  9. [Android多媒体二]调用系统录音机录音并存储到指定位置,适配安卓 7.0

    接上一篇文章,[Android多媒体一]调用系统相机拍照并存储到指定位置,适配安卓 7.0 本文讲述如何调用系统录音机,完成录音后,对录音进行指定位置的保存. 一.开始编写 首先,还是理清一下思路,在 ...

最新文章

  1. linux关闭防火墙命令firewall
  2. Adobe (Acrobat)Reader 6.0以上版本支持对有特殊权限的PDF进行添加注释,填写标单以及保存的功能。...
  3. HOG特征(Histogram of Gradient)学习总结
  4. python打印字符金字塔_Python教程第7篇:print打印字符串
  5. 行DataRow对象的属性和方法
  6. HTML 标题h1-h6
  7. phpzend框架_PHP框架Zend
  8. 字符集本地化(locale)与输入法系列讲座-----(1) UTF-8 and Unicode FAQ
  9. java名片_JAVAeclipse3制作名片
  10. zabbix安装教程
  11. 输出100以内的所有素数
  12. 红耳朵象全国战略,让大众享受上门洗车的福利
  13. EDK环境搭建UEFI工程模块文件介绍
  14. Excel根据身份证号自动识别性别
  15. MES系统如何实现无纸化?(下)
  16. ubuntu 内存占用过高导致卡死 解决办法
  17. 在word/wps插入代码+保持源代码风格+加行号
  18. 江苏省计算机一级主要考什么,江苏省计算机一级考试复习资料 很全面的
  19. Centos7 定时关机
  20. ZooKeeper各个版本下载

热门文章

  1. python掷两个骰子的和_python之pygal:掷两个不同的骰子并统计大小出现次数
  2. excle中根据两列内容匹配第三列数据
  3. 电子商务O2O不是零售业的“补充”,它将毁灭零售业!
  4. 城轨交通系统中智能化管理的作用分析
  5. 构建微服务的十大 Go 框架/库
  6. 魔法深渊 - Java
  7. SpringData @Query和@Modifying注解原理解析
  8. Win11快速打开便签和使用技巧分享
  9. [脚本之间]C语言解析Python字典
  10. U盘打不开,提示格式化怎么办?不小心确定U盘格式化如何找回数据?