Android实现一个简单的手电筒
2016-12-28 14:55
393 查看
添加手机权限
<uses-permission android:name="android.permission.FLASHLIGHT"></uses-permission> <uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-permission android:name="android.handware.camera"></uses-permission> <uses-permission android:name="android.handware.autofocus"></uses-permission>
布局
<Button android:id="@+id/btn_open" android:layout_width="wrap_content" android:layout_height="wrap_content" />
代码
import android.app.Activity; import android.content.Context; import android.hardware.Camera; import android.hardware.camera2.CameraManager; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button btn_open; private boolean status=false; private CameraManager cm; private Camera camera; Camera.Parameters parameters; MainActivity instance; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); instance=this; btn_open= (Button) findViewById(R.id.btn_open); btn_open.setText("open"); cm= (CameraManager) getSystemService(Context.CAMERA_SERVICE); camera=Camera.open(); btn_open.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(!status){ btn_open.setText("close"); status=true; new Thread(new TurnOnLight()).start(); }else{ parameters=camera.getParameters(); instance.parameters.setFlashMode("off"); camera.setParameters(instance.parameters); btn_open.setText("open"); status=false; } } }); } @Override protected void onDestroy() { super.onDestroy(); camera.stopPreview(); camera.release(); camera = null; } private class TurnOnLight implements Runnable { @Override public void run() { instance.parameters=instance.camera.getParameters(); instance.parameters.setFlashMode("torch"); instance.camera.setParameters(instance.parameters); } } }
总结:
声明完调用系统硬件后,想要使用闪光灯则要创建CameraManager ,Camera,以及Camera.Parameters对象。顾名思义,前面两个不用解释,Parameters表示相机服务的参数(例如聚焦,闪关灯,滤镜等等的一些相关配置)具体操作:
CameraManager cm= (CameraManager)getSystemService(Context.CAMERA_SERVICE)
Camera camera=Camera.open();
Camera.Parameters parameter=camera.getParameters();
//打开闪光灯
parameters.setFlashMode(“torch”);//打开
camera.setParameters(paramsters);
//关闭闪光灯
parameters.setFlashMode(“off”);//关闭
camera.setParameters(paramsters);
相关文章推荐
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- Android下用Media Player实现一个最简单的视频播放器
- 16—【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 一个简单的Android程序,JNI实现Native C/C++
- (转)【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- Android:一个简单查询界面的实现
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- android,返回前一个activity的简单实现 及activity跳转的简单操作
- Android 一个简单的登陆窗口的实现(文件的保存与读取)
- 【Android2D游戏开发十六】(上文之触摸屏手势)详解Android Gesture 手势操作!利用手势实现一个简单切换图片的功能!
- Android:一个简单查询界面的实现
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- Android 一个简单手机响铃功能实现
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- Android: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- 也发一个自己实现的android简单文件选择器代码。支持多卡,排序