1、开启关闭闪光灯

/**

* 通过设置Camera打开闪光灯

*/

public synchronized void turnLightOn() {

if (camera == null) {

return;

}

parameters = camera.getParameters();

if (parameters == null) {

return;

}

parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);

camera.setParameters(parameters);

}

/**

* 通过设置Camera关闭闪光灯

*/

public synchronized void turnLightOff() {

if (camera == null) {

return;

}

parameters = camera.getParameters();

if (parameters == null) {

return;

}

parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);

camera.setParameters(parameters);

}

2、切换前后摄像头

private int mCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;

//现在是后置,变更为前置

if (camera != null && mCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) {

closeCamera();

camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT);//打开当前选中的摄像头

try {

amera.setPreviewDisplay(surfaceHolder);//通过surfaceview显示取景画面

camera.autoFocus(CameraManager.get().getAutoFocusCallback());

camera.setDisplayOrientation(getPreviewDegree());

} catch (IOException e) {

e.printStackTrace();

}

camera.startPreview();//开始预览

mCameraId = Camera.CameraInfo.CAMERA_FACING_FRONT;

} else if (mCameraId == Camera.CameraInfo.CAMERA_FACING_FRONT) {

closeCamera();

camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);//打开当前选中的摄像头

try {

camera.setPreviewDisplay(surfaceHolder);//通过surfaceview显示取景画面

camera.autoFocus(CameraManager.get().getAutoFocusCallback());

camera.setDisplayOrientation(getPreviewDegree());

} catch (IOException e) {

e.printStackTrace();

}

camera.startPreview();//开始预览

mCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;

}

public void closeCamera() {

if (camera != null) {

camera.stopPreview();//停掉原来摄像头的预览

camera.release();//释放资源

camera = null;//取消原来摄像头

CameraManager.get().getPreviewCallback().setHandler(null, 0);

CameraManager.get().getAutoFocusCallback().setHandler(null, 0);

CameraManager.get().setPreviewing(false);

}

}

// 提供一个静态方法,用于根据手机方向获得相机预览画面旋转的角度

private int getPreviewDegree() {

// 获得手机的方向

int rotation = getActivity().getWindowManager().getDefaultDisplay().getRotation();

int degree = 0;

// 根据手机的方向计算相机预览画面应该选择的角度

switch (rotation) {

case Surface.ROTATION_0:

degree = 90;

break;

case Surface.ROTATION_90:

degree = 0;

break;

case Surface.ROTATION_180:

degree = 270;

break;

case Surface.ROTATION_270:

degree = 180;

break;

}

return degree;

}

android自定义相机打开闪光灯,Android 照相机(闪光灯,切换摄像头)相关推荐

  1. android 自定义相机源码,Android 自定义相机及分析源码

    Android 自定义相机及分析源码 使用Android 系统相机的方法: 要想让应用有相机的action,咱们就必须在清单文件中做一些声明,好让系统知道,如下 action的作用就是声明action ...

  2. android自定义相机打开闪光灯,Android surfaceview 自定义相机 拍照(闪光灯、先后摄像头)...

    在咱们app中常常会调用相机进行拍照,而后把拍下来的图片保存在本地,再上传到服务端,网上有很多自定义的相机,也下载了很多,可是效果仍是不满意,因此决定自定义下,很少说了,直接上代码: public c ...

  3. Android自定义相机,切换前后摄像头,照相机拍照

    Android自定义相机,简单实现切换前后摄像头,照相机拍照 Ctrl +C  Ctrl+V 可以直接 run 起来,注释比较详细;源码下载 <?xml version="1.0&qu ...

  4. Android 自定义相机Demo 入门学习

    Android 自定义相机Demo 本文是参考网上一些自定义相机示例,再结合自己对相机的功能需求写的,基本上包含了很多基本功能,比如相机对焦.闪光灯,以及在手机预览界面上绘制自己想要绘制的图案. 话不 ...

  5. android自动对焦第一次对焦,Android自定义相机实现自动对焦和手动对焦

    Android自定义相机实现自动对焦和手动对焦: 不调用系统相机,因为不同的机器打开相机呈现的界面不统一也不能满足需求. 所以为了让程序在不同的机器上呈现出统一的界面,并且可以根据需求进行布局,做了此 ...

  6. Android自定义相机拍照、图片裁剪的实现

    原文:Android自定义相机拍照.图片裁剪的实现 最近项目里面又要加一个拍照搜题的功能,也就是用户对着不会做的题目拍一张照片,将照片的文字使用ocr识别出来,再调用题库搜索接口搜索出来展示给用户,类 ...

  7. android 实现自动拍照,Android自定义相机实现定时拍照功能

    这篇博客为大家介绍Android自定义相机,并且实现倒计时拍照功能. 首先自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: activity_main.xml andro ...

  8. Android自定义相机实现定时拍照

    这篇博客为大家介绍Android自定义相机,并且实现倒计时拍照功能. 首先自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: activity_main.xml <F ...

  9. android 自定义相机,Android自定义相机实现定时拍照功能

    这篇博客为大家介绍Android自定义相机,并且实现倒计时拍照功能. 首先自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: activity_main.xml andro ...

最新文章

  1. 什么是SCADA Viewer
  2. XShell上无法通过rz上传空文件,通过新建文件来实现
  3. 《第3选择》学习笔记
  4. Ehab and the Expected XOR Problem
  5. 基于以太坊网络的智能合约开发、部署和测试(入门)
  6. mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻
  7. php面向对象、语法【访问成员的情形:外和方法内调用对象的关键字this】、构造函数的场景和析构函数的场景...
  8. Hadoop源码分析28 JobTracker 处理JobClient请求
  9. python 合并与连接
  10. layui 上传图片回显并点击放大实现
  11. Microsoft SQL Server 双机热备份,实时同步
  12. 基于MyEclipse+JSP+Mysql+Tomcat开发得塞北村镇旅游网站设计
  13. 苹果电脑上好用的几款数据备份工具
  14. 央视《家有妙招》整理版,值得永远收藏!
  15. 怎么恢复计算机文件查看方式,win7电脑打开方式怎么还原?win7电脑还原打开方式的方法...
  16. 操作系统 请求分页存储管理方式(含页面置换算法)
  17. 一文了解循环神经网络
  18. reverse()函数
  19. 软件生成问候图片_软件 | 珍藏级推荐!全平台使用!!!
  20. 【转录集锦】夸夸其谈天下事,不肯俯首看苍生

热门文章

  1. Android 性能优化概述
  2. 基于AVR单片机的AT24C01-512eeprom读写程序
  3. 【Lintcode】1645. Least Subsequences
  4. 规则在自然语言处理领域的重要地位
  5. 好看的桑基图是如何炼成的!
  6. 高德h5定位误差_高德地图定位JS API不准确问题
  7. 抖音小店最新招商入驻标准及资质要求是什么
  8. arima模型 白噪声检验_白噪声模型
  9. 手机查看正在运行的服务
  10. css 根据不同屏幕设置间距_CSS根据屏幕分辨率宽度自动适应的办法