闪光灯

来源:互联网 发布:房地产大数据营销 编辑:程序博客网 时间:2024/04/28 15:10

闪光灯主要是控制Camera 类的开关,来实现一闪一闪

代码如下:

import android.app.Activity;import android.hardware.Camera;import android.hardware.Camera.Parameters;import android.media.AudioManager;import android.media.SoundPool;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.LinearLayout;public class MainActivity extends Activity {private Camera camera = null;// 创建一个Handler对象Handler handler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);flashclose();camera.startPreview();}// 判断camera是否打开private boolean openCamera() {if (camera != null) {return true;}try {camera = Camera.open();} catch (Exception e) {return false;}return true;}// 关闭cameraprivate void releaseCamera() {handler.removeCallbacks(mFlashOnRunnable);handler.removeCallbacks(mFlashOffRunnable);if (camera != null) {camera.stopPreview();camera.release();camera = null;}}// 开始闪光private void flashopen() {if (!openCamera()) {return;}Parameters parameters = camera.getParameters();parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);camera.setParameters(parameters);}// 停止闪光private void flashclose() {if (!openCamera()) {return;}Parameters parameters = camera.getParameters();parameters.setFlashMode(Parameters.FLASH_MODE_OFF);camera.setParameters(parameters);}private Runnable mFlashOnRunnable = new Runnable() {@Overridepublic void run() {flashopen();//闪光灯的频率(自己可以静态设置,也可以动态设置)int delayTime = getDelayTime();if (delayTime > 0) {handler.postDelayed(mFlashOffRunnable, delayTime);}}};private Runnable mFlashOffRunnable = new Runnable() {@Overridepublic void run() {flashclose();handler.postDelayed(mFlashOnRunnable, getDelayTime());}};// 获的闪关的频率private int getDelayTime() {//这就是获取刻度尺的值,上篇文章有讲解return staff.getRate() * 100 + 100;}}



0 0