android手电筒原理很简单,就是打开相机的闪光灯。

核心的代码就这么多:

打开相机

设置闪光灯开

打开预览

设置相机的autoFocus

  Camera camera = Camera.open();  Parameters mParameters = camera.getParameters();  mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);   camera.setParameters(mParameters);  camera.startPreview();  camera.autoFocus(new AutoFocusCallback() {public void onAutoFocus(boolean success, Camera camera) {}  });
这几个步骤缺一不可。照网上之前的例子试了,一直不成功。就是因为有些缺了打开预览,有些缺了autoFocus


然后就是设置权限

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

最后贴以下完整的Activity。我这个很简单,create的时候就打开手电筒,屏幕上显示”Flashlight open“,按返回键,关闭并退出应用。

package org.lhc.flashlight;import android.app.Activity;import android.hardware.Camera;import android.hardware.Camera.AutoFocusCallback;import android.hardware.Camera.Parameters;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.widget.TextView;public class MainActivity extends Activity {private Camera camera = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.camera = Camera.open();if (this.camera != null) {Parameters mParameters = camera.getParameters();mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); camera.setParameters(mParameters);camera.startPreview();camera.autoFocus(new AutoFocusCallback() {public void onAutoFocus(boolean success, Camera camera) {}});TextView info = (TextView)this.findViewById(R.id.flashlight_info);info.setText("Flashlight open");}}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (this.camera != null) {Parameters mParameters = camera.getParameters();mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);camera.setParameters(mParameters);camera.stopPreview();camera.release();}Log.i("Flashlight", "exit");this.finish();System.exit(0);}return super.onKeyDown(keyCode, event);}}


全部代码:http://download.csdn.net/detail/redstarofsleep/8749589


转载请注明出处

http://blog.csdn.net/redstarofsleep/article/details/4539068


更多相关文章

  1. Android(安卓)2012年9月19日_001
  2. android的singleInstance启动模式及方法调用
  3. Android2.2 API 中文文档系列(2) —— EditText
  4. android edittext 设置行距不影响光标高度
  5. Android(安卓)TabLayout 浅显总结
  6. Android(安卓)Studio(二):快捷键设置、插件安装
  7. Android(安卓)关于获取摄像头帧数据
  8. Android(安卓)WebView的使用(一)
  9. android Log.isLoggable方法的使用

随机推荐

  1. Android开发笔记(一百零二)统计图表
  2. 安装android SDK和导入项目容易遇到的ERR
  3. Android四大组件之ContentProvider(一)
  4. Android:让WebView支持元素
  5. (转帖)自定义Android组件之带图像的TextVie
  6. Android开发学习之路--Android(安卓)Stud
  7. Android开发中LogCat工具的使用
  8. Android(安卓)wpa_cli 调试方法(adb shel
  9. eclipse查看Android源代码
  10. android httpclient https 单向连接tomca