打开手机手电筒
2015-11-09 10:33
471 查看
<span style="font-size:14px;">package com.jwzhangjie; import com.jwzhangjie.test.R; 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.widget.Button; /** * 手电筒 * @author jwzhangjie * */ public class CameraLight extends Activity{ private Button openLight; private boolean status = false; private Camera camera; private Parameters parameters; private CameraLight instance; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cameralight); instance = this; camera = Camera.open(); openLight = (Button)findViewById(R.id.openLight); openLight.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (!status) { openLight.setText("关闭"); status = true; new Thread(new TurnOnLight()).start(); }else { status = false; openLight.setText("打开"); instance.parameters.setFlashMode("off"); instance.camera.setParameters(instance.parameters); } } }); } private class TurnOnLight implements Runnable{ @Override public void run() { instance.parameters = instance.camera.getParameters(); instance.parameters.setFlashMode("torch"); instance.camera.setParameters(instance.parameters); } } } </span>
这里要说明一下 开启线程来打开手电筒是因为与硬件相关的操作最好不用主线程 因为硬件有可能卡顿主线程 建议开启线程来开启
相关文章推荐
- 《从零开始学Swift》学习笔记(Day 33)——属性观察者
- 阿里云服务器密码说明
- 异步任务执行之-队列
- iOS -程序启动原理和UIApplication的介绍
- 随笔
- nginx no-cache
- oracle 简单序列 自增 实例
- 各种加密算法的速度对比
- iOS -程序启动原理和UIApplication的介绍
- 手机端apk文件安装
- 11月初.wang域名总量TOP15:13家中国域名商上榜
- js页面效果
- 利用maven中resources插件的copy-resources目标进行资源copy和过滤
- Android 监听wifi总结
- DBMS_STATS.GATHER_TABLE_STATS详解
- js对象
- Java Web自定义MVC框架详解
- Caffe中的优化方法
- Connection.setAutoCommit使用的注意事项
- kvm下面使用vnc