博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Android系统中调用系统前置摄像头
阅读量:5256 次
发布时间:2019-06-14

本文共 1320 字,大约阅读时间需要 4 分钟。

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

转载于:https://www.cnblogs.com/android-html5/archive/2011/07/09/2533750.html

你可能感兴趣的文章
Solr4.4配置Tomcat7
查看>>
C++ 11—const用法(C++ primer读书笔记)
查看>>
指法练习心得
查看>>
XDU 1160 - 科协的数字游戏I
查看>>
HDOJ 1059 Dividing
查看>>
Xceed Zip压缩和解压控件Xceed Zip Compression Library
查看>>
58.UIScrollView XIB拖拽约束
查看>>
LUA 删除元素的问题
查看>>
Memcpy, blockcopy的进一步理解
查看>>
Unified shader model
查看>>
python 管理上下文with
查看>>
计算机相关题目
查看>>
VS重装后修改VC++包含目录、继承值以及附加依赖项等
查看>>
20170420条件表达式的三元操作符x if 条件 else y
查看>>
微信企业号办公系统-图片预览放大功能-previewImage
查看>>
30334逻辑指令
查看>>
AJAX顺序输出
查看>>
namespace for function in Flex
查看>>
mysql binlog 大小设置问题
查看>>
Android中颜色透明度对应16进制值
查看>>