代码如下:

一个Activity里面,添加了一个View,是全屏的。退出Activity时,关闭闪光灯,要释放Camera。

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;public class TorchActivity extends Activity {private Camera camera;private Parameters parameters;private boolean is_open_torch;private View view;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏requestWindowFeature(Window.FEATURE_NO_TITLE); // 去掉标题栏setContentView(R.layout.activity_torch);view = (View) findViewById(R.id.view_torch);view.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (!is_open_torch) {// 开启闪光灯(手电筒)openTorch();} else {// 关闭闪光灯closeTorch();}}});}@Overrideprotected void onPause() {// TODO Auto-generated method stubcloseTorch();super.onStop();}// 打开闪光灯做手电筒private void openTorch() {camera = Camera.open();parameters = camera.getParameters();// 判断闪光灯是否存在if (parameters.getFlashMode() == null) {Toast.makeText(this, "本机没有闪光灯装置!", Toast.LENGTH_SHORT).show();return;}parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);camera.setParameters(parameters);camera.startPreview();is_open_torch = true;view.setBackgroundResource(R.drawable.on);}// 关闭手电筒private void closeTorch() {if (camera != null) {parameters.setFlashMode(Parameters.FLASH_MODE_OFF);camera.setParameters(parameters);camera.stopPreview();camera.release();camera = null;parameters = null;}is_open_torch = false;view.setBackgroundResource(R.drawable.off);}}

XML文件布局很简单,如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".TorchActivity" ><Viewandroid:id="@+id/view_torch"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:background="@drawable/off" /></RelativeLayout>

要注意给应用加访问权限:

    <uses-permission android:name="android.permission.FLASHLIGHT" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" />

PS:

我是按着小米手机的手电筒做的,之后发现两个问题:

1、小米自己做的手电筒打开后还能打开camera,我写的不行,退出Activity时我将闪光灯关闭了,不然进不了camera。

2、小米手机的手电筒开和关状态切换很快,自己写的稍慢。

以上两个问题未解决,如有高手看见,还忘赐教。

闪光灯当做手电筒使用相关推荐

  1. 初学Android——闪光灯当做手电筒使用

    http://blog.csdn.net/canghai1129/article/details/11643343 我本身是做功能机出身,MTK的方案,业内人士都知道,功能机没落了.最近在学习andr ...

  2. java闪光灯手电筒_Android_Android 开启闪光灯做手电筒的详解,复制代码 代码如下:public class H - phpStudy...

    Android 开启闪光灯做手电筒的详解 public class HandLightActivity extends Activity implements OnClickListener{ pri ...

  3. 微信小程序_图片连拍_闪光灯_手电筒_录制

    借助小程序组件 < camera > 实现图片连拍.闪关灯.手电筒功能: 注意: 手电筒功能的实现小程序版本最低版本 2.8.0 直接复制运行代码的小伙伴,记得把下面页面代码中 svg 的 ...

  4. android 相机闪光灯和手电筒的使用

    在android项目中单独使用手电筒或者闪光灯是没有任何问题的.但是在你相机camera打开的时候再打开手电筒功能这时候就或多或少有问题.会报类似于这种错Fail to connect to came ...

  5. android 闪光灯 实现,android将闪光灯作为手电筒的实现代码

    手电筒是使用Android手机的闪光灯,所以需添加权限 import com.jwzhangjie.test.R; import android.app.Activity; import androi ...

  6. 开启android设备的闪光灯作为手电筒

    手电筒是使用Android手机的闪光灯,所以需添加权限<uses-permission android:name="android.permission.CAMERA" /& ...

  7. java闪光灯_手电筒项目开发一闪光灯

    重点: 1.SurfaceView, OpenGL ES 的纹理------照相机捕获图像流纹理 2.style.xml配置文件.设置无标题等信息 true true @drawable/bg 3.使 ...

  8. android手电筒项目代码,Android 开启闪光灯做手电筒 源码-Fun言

    权限: 布局 android:layout_width="fill_parent" android:layout_height="fill_parent" an ...

  9. Android 开启闪光灯做手电筒 源码

    权限:<uses-permission android:name="android.permission.FLASHLIGHT" /><uses-permissi ...

最新文章

  1. MySQL子查询嵌套查询
  2. html使div内部元素水平排列_元素周期表探讨
  3. mysql workbench 数据备份_如何使用MySQL Workbench进行MySQL数据库备份?
  4. Android模拟器远程,使用Android模拟器进行远程调试
  5. C1083: 无法打开包括文件: “stdafx.h”: No such file or directory
  6. 局域网文件共享手机访问电脑文件软件
  7. 数字图像处理 - 灰度级分层 的python实现
  8. 深入理解地球的经度和纬度换算
  9. [iOS] Windows 使用IPSW文件升级iOS 13 beta
  10. SQL Server跟踪(Trace)--系统跟踪日志;从小白到大神,文章细节满满,细致到令人发指。
  11. 计算机应用基础高一考试,计算机应用基础 2018 高一《计算机应用基础》教学方法初探...
  12. 一零二一、ERROR StandaloneSchedulerBackend: Application has been killed. Reason: All masters are unrespon
  13. 1.基于51单片机的蓝牙手机遥控小车
  14. 小米OJ 54(数独游戏)
  15. 浅析竞技游戏匹配机制-ELO算法
  16. Java 按钮组件_提交按钮
  17. RE0:从零开始的服务器生活(一):双硬盘双系统+无线网卡驱动+最简单的Ubuntu16.04 Nvidia显卡驱动设置
  18. linux自己制作卸载u盘程序,定制自己的U盘Linux系统
  19. 迅游科技:游戏监控实践分享
  20. 07-2-theos实战: 给微信的发现”界面增加2行功能

热门文章

  1. vue3+Element Plus+Thinkphp6的开源免费的后台快速开发框架
  2. 白天wifi上网,晚上收集话费
  3. 100种思维模型之错误记录思维模型-66
  4. Nutch学习笔记二——抓取过程简析
  5. 示波器基本原理之五:采集模式
  6. 基于Edgar-Guevara-Codina的有限差分光束传输法matlab仿真模拟
  7. python opencv kcf_pybind11—目标跟踪demo(KCF,python version)
  8. oracle 删除表空间错误 提示:ORA-02429
  9. 企业微信添加群机器人并向群里发布消息
  10. android 电池绘制,Android绘制电池电量图标