java闪光灯_Android实现闪光灯效果

本文介绍了如何在Android中实现闪光灯的打开、关闭以及闪烁效果,包括权限声明、按钮监听和相机操作。提供了详细的代码示例,适用于开发简单工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一、声明闪光灯的权限

注意: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界面很简单,四个按钮:

decdd55ef097210c8ff2bf994147493f.png

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值