软件编程
位置:首页>> 软件编程>> Android编程>> Android实现闪光灯效果

Android实现闪光灯效果

作者:诸葛佩奇  发布时间:2023-08-02 12:20:06 

标签:Android,闪光灯

本文实例为大家分享了Android实现闪光灯效果的具体代码,供大家参考,具体内容如下

一、声明闪光灯的权限


<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;

@Override
 protected 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() {
   @Override
   public void onClick(View v) {
     open();
   }
 };

/**
  * 关闭手电筒
  */
 private OnClickListener closeOnClickListener = new OnClickListener() {
   @Override
   public void onClick(View v) {
     close();
   }
 };

/**
  * 开启闪烁
  */
 private OnClickListener openFlickerOnClickListener = new OnClickListener() {
   @Override
   public void onClick(View v) {
     isShanshuo = true;
     openFlicker.setEnabled(false);
     new Thread(new Runnable() {
       @Override
       public 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() {
   @Override
   public 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实现闪光灯效果

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

来源:https://blog.csdn.net/fengyeNom1/article/details/80911545

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com