Android實現(xiàn)閃光燈效果
更新時間:2018年07月05日 08:41:34 作者:諸葛佩奇
這篇文章主要為大家詳細介紹了Android實現(xiàn)閃光燈效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Android實現(xiàn)閃光燈效果的具體代碼,供大家參考,具體內容如下
一、聲明閃光燈的權限
<uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.FLASHLIGHT" />
注意:Camera權限6.0以上需要動態(tài)申請權限
二、具體的代碼如下
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 Zxing生成二維碼經(jīng)典案例分享
這篇文章主要為大家分享了Android Zxing生成二維碼經(jīng)典案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
Android仿拉手網(wǎng)團購App產(chǎn)品詳情界面效果
這篇文章主要介紹了Android仿拉手網(wǎng)團購App產(chǎn)品詳情界面效果,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-05-05
AndroidStudio 實現(xiàn)加載字體資源的方法
這篇文章主要介紹了AndroidStudio 實現(xiàn)加載字體資源的方法的相關資料,這里提供了詳細的實現(xiàn)方法,需要的朋友可以參考下2016-11-11
Android實現(xiàn)編程修改手機靜態(tài)IP的方法
這篇文章主要介紹了Android實現(xiàn)編程修改手機靜態(tài)IP的方法,涉及Android編程實現(xiàn)對系統(tǒng)底層信息修改的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10

