今天接到了一个面试的通知,面试的题目是15分钟实现一个手机闪光灯的效果

具体的代码如下:

一、声明闪光灯的权限

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT" />

注意:Camera权限6.0以上需要动态申请权限

二、具体的代码如下:

package com.google.yang.myapplication;import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;/*** 闪光灯的控制** @author yang*/
public class MainActivity extends AppCompatActivity {private Button open;private Button close;private Button openFlicker;private Button closeFlicker;private Camera camera;private Boolean isShanshuo;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);open = (Button) this.findViewById(R.id.open);close = (Button) this.findViewById(R.id.close);openFlicker = (Button) findViewById(R.id.openFlicker);closeFlicker = (Button) findViewById(R.id.closeFlicker);open.setOnClickListener(openOnClickListener);close.setOnClickListener(closeOnClickListener);openFlicker.setOnClickListener(openFlickerOnClickListener);closeFlicker.setOnClickListener(closeFlickerOnClickListener);}/*** 打开手电筒*/private OnClickListener openOnClickListener = new OnClickListener() {@Overridepublic void onClick(View v) {open();}};/*** 关闭手电筒*/private OnClickListener closeOnClickListener = new OnClickListener() {@Overridepublic void onClick(View v) {close();}};/*** 开启闪烁*/private OnClickListener openFlickerOnClickListener = new OnClickListener() {@Overridepublic void onClick(View v) {isShanshuo = true;openFlicker.setEnabled(false);new Thread(new Runnable() {@Overridepublic void run() {while (isShanshuo) {open();try {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}close();try {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}}}}).start();}};/*** 关闭闪烁*/private OnClickListener closeFlickerOnClickListener = new OnClickListener() {@Overridepublic void onClick(View v) {isShanshuo = false;openFlicker.setEnabled(true);}};/*** 打开闪光灯** @return*/private void open() {try {camera = Camera.open();camera.startPreview();Parameters parameters = camera.getParameters();parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);camera.setParameters(parameters);} catch (Exception e) {e.printStackTrace();}}/*** 关闭闪光灯** @return*/private void close() {try {Parameters parameters = camera.getParameters();parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);camera.setParameters(parameters);camera.release();camera = null;} catch (Exception e) {e.printStackTrace();}}}

XML界面很简单,四个按钮:

有兴趣的可以试一试,当作一个小工具收藏一下。

Android闪光灯实现相关推荐

  1. android闪光灯

    android的闪光灯不大好用,Andy银行卡识别项目中(不记得在哪里找的了反正也是csdn里面的,如果作者有意见可以提,我会标明链接地址的),闪光灯效果不错[以前直接用android的闪光灯效果有时 ...

  2. Android 闪光灯类

    2019年开发Android APP(API Level 28)时写的工具类,整理出来做参考用 作用:使用闪光灯功能:没有该功能则通过手电筒实现不停闪烁的闪光灯功能 package com.soft. ...

  3. android 闪光灯 亮度调节,手机亮度调节器(com.morega.mgamread) - 7.4.1 - 应用 - 酷安

    权限信息 · 拍摄照片和视频 · 在其他应用之上显示内容 · 修改或删除您的USB存储设备中的内容 · 控制闪光灯 · 对正在运行的应用重新排序 · android.permission.FOREGR ...

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

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

  5. android闪光灯参数,android6.0中的闪光灯

    在android6.0中,加入了Camera相关新特性,在做开发过程中,遇到闪光灯的操作,如下: 1.导入包: import android.hardware.camera2.CameraManage ...

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

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

  7. android 闪光灯(手电筒)工具类

    这是kotlin代码,复制代码的时候,请不要复制到java文件 ╮(╯▽╰)╭ java源码在下面!! android11逻辑没变,所以放到android11依旧兼容 需要闪光灯权限: <use ...

  8. android 闪光灯(手电筒)工具类,兼容android9.0

    建议使用我新写的工具类,用了单例模式,使用更简单:https://blog.csdn.net/jingzz1/article/details/105787463 android6.0以下使用Camer ...

  9. android闪光灯测心率,MIUI 12新功能来了,通过闪光灯测心率,支持全部机型

    原标题:MIUI 12新功能来了,通过闪光灯测心率,支持全部机型 智能手表.手环测心率已经十分常见了,也是必备功能之一,不过手机测心率大家听说过吗?2016年中兴发布的Grand X 4手机通过将心率 ...

最新文章

  1. 20道常见初级Java面试题
  2. oracle4.0,OracleTM Application Server 4.0简 介
  3. 数据脱敏和加密_Apache ShardingSphere数据脱敏全解决方案详解
  4. 关于汇编程序编译的一些详细步骤和要点
  5. Err.number错误号和错误说明(一)
  6. SpringBoot是什么?
  7. Linux 命令(112)—— unalias 命令(builtin)
  8. GoogleTest测试框架介绍(二)
  9. mysql pmm安装_PMM 安装部署
  10. 怎么在博客上积累代码量?
  11. 服务器装系统就蓝屏,重装了下系统老是蓝屏
  12. 基于粒子群算法的PID控制器优化设计
  13. Dart | Dart 语言基础知识梳理
  14. iOS越狱系统绕过frida检测
  15. 每日一题: 第十四题
  16. [篇二章四]_安装 Windows 11 系统
  17. java编写机器人_用JAVA编写自己的机器人一起“厮杀”
  18. DS 500PM mobil便携式智能图表记录仪订购代码0500 5340_A1_B1_C1_D1_E1
  19. 中国石油大学《机械电气安全技术(含课程设计)》
  20. 2022年第二届中国高校大数据挑战赛A题探究

热门文章

  1. 操作系统辅助扩展阅读
  2. 世界那么大,能遇见真的很不容易
  3. 王家耀院士 | 新型智慧城市“大脑”就是时空大数据平台
  4. urovo手持终重启_Urovo:PDA手持机的硬件优势
  5. python nodejs爬虫_nodejs爬虫
  6. nhmicro添加合同模板管理功能
  7. MuMu模拟器提取离线安装包
  8. HDU 6264 Super-palindrome(CCPC2017杭州) 水题
  9. 吉大计算机专硕报录比,22考研院校报录比汇总(持续更新)
  10. 雅可比主对角线(Jacobi diagonalization)化求对称矩阵的特征值(python,数值积分)