从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 number

for ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) {

Camera.getCameraInfo( camIdx, cameraInfo ); // get camerainfo

if ( 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等接口后可以进行界面和功能的自定义,可以自由的实现所需要的界面布局和图像处理效果。例如如下的界面:

安卓java摄像机的_在Android系统中调用系统前置摄像头相关推荐

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

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

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

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

  3. 在Android系统中调用系统前置摄像头

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

  4. 安卓java修改热点_修改Android源码实现连接指定BSSID的热点

    1 概述 需要实现一个需求,Android手机A发射热点,获取BSSID,发送到另一台Android设备,在环境中存在多个同样SSID和密码的情况下,设备只会连接手机A. 1.1 概念 服务集识别码( ...

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

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

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

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

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

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

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

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

  9. Python利用JPype调用Java对象方法【实现在Python中调用JAVA】

    一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...

最新文章

  1. UA SIE545 优化理论基础4 对偶理论简介3 强对偶
  2. 绝地求闪退be服务器未运行,绝地求生大逃杀BE启动失败,应用程序无法正常启动...
  3. php使用fputcsv进行大数据的导出
  4. 部署LAMP-WordPress站点上线
  5. python规则框架_Pytest框架【2】:用例规则
  6. javadoc 开源项目_在下一个项目中不使用JavaDoc的5大原因
  7. java interpreter_解释器模式(Interpreter)Java
  8. 拼多多协助广东警方打击网络黑灰产 15名嫌疑人于近日落网
  9. TSC条码打印机C#例程(tsclib.dll调用)
  10. 将Excel(.xlsx)中的数据导入到数据库中
  11. JQuery左右切换实现
  12. java实现DFA 敏感词检测
  13. LaTeX大括号用法
  14. win7中inter信息服务器,Win7系统Internet选项在哪里?
  15. nubia android root权限,努比亚Z11 root教程及获取root权限的方法
  16. win10 vs2008到期的解决办法:
  17. 编程之美 2.1 求二进制中1的个数
  18. stable_sort应用例子
  19. C语言猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时..
  20. 人工神经网络模型定义,人工智能神经网络模型

热门文章

  1. Bailian4073 最长公共字符串后缀【文本处理】
  2. UVA10150 POJ2647 Doublets【BFS】
  3. UVA10302 Summation of Polynomials【数学】
  4. JSK-61 二进制加法【大数】(废除!!!)
  5. POJ2940 HDU1489 UVA11054 Wine Trading in Gergovia【Ad Hoc】
  6. KMP算法(C语言版)
  7. keras + tensorflow —— 函数式 API编程
  8. 计算机的组成 —— 磁盘阵列(RAID)
  9. 深度学习基础(七)—— Gibbs 采样
  10. 编程语言中的常量折叠(const folding)