android通過led實現(xiàn)手電筒功能
更新時間:2019年09月23日 11:17:04 作者:Code Man
這篇文章主要為大家詳細(xì)介紹了android通過led實現(xiàn)手電筒功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了android通過led實現(xiàn)手電筒功能的具體代碼,供大家參考,具體內(nèi)容如下
第一步 添加權(quán)限:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.flash" />
第二步 實現(xiàn)手電筒工具類:
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.AsyncTask;
/**
*Caution: On some devices, this method may take a long time to complete. It is best
*to call this method from a worker thread (possibly using android.os.AsyncTask) to
*avoid blocking the main application UI thread.
*/
public class FlashlightUtil extends AsyncTask<String, String, String> {
private Camera camera;
private int cameraId = 0; // 此功能目前不實用,這里不做實現(xiàn) , 但不能刪除
private Parameters parameters;
public boolean isTorch = false;
private boolean canFinish = false;
private static FlashlightUtil flashlightUtil;
private FlashlightUtil() {
}
/**
* 設(shè)置手電筒開關(guān),打開或關(guān)閉手電筒,根據(jù)手電筒的狀態(tài)來設(shè)置相反的狀態(tài) void 2016年1月12日
*/
public static void setSwitch() {
if (null == flashlightUtil) {
flashlightUtil = new FlashlightUtil();
flashlightUtil.execute("");
}
flashlightUtil.setONOFF();
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
while (!canFinish) {
if (null == camera) {
camera = Camera.open(cameraId);
}
parameters = camera.getParameters();
if (isTorch) {
if (parameters.getFlashMode().equals(Parameters.FLASH_MODE_OFF)) {
// 打開鎂光燈
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
}
} else {
if (parameters.getFlashMode().equals(
Parameters.FLASH_MODE_TORCH)) {
// 關(guān)閉鎂光燈
camera.stopPreview(); // 關(guān)掉亮燈
camera.release(); // 關(guān)掉照相機
camera = null;
}
}
}
return null;
}
/**
* 此功能暫時關(guān)閉
* @hide
*/
public FlashlightUtil setCameraId(int cameraId) {
this.cameraId = cameraId;
return flashlightUtil;
}
/**
* 打開關(guān)閉手電筒,默認(rèn)第一次為打開 2016年1月12日
*/
private void setONOFF() {
isTorch = !isTorch;
}
}
第三步 添加手電筒按鈕的觸發(fā)事件(這里是在布局文件中通過onclick實現(xiàn)的)
/**
* 打開手電筒
*/
public void openFlashlight(View view) {
FlashlightUtil.setSwitch() ;
}
手電筒功能比較簡單,這里實現(xiàn)了一步開啟關(guān)閉。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android Studio實現(xiàn)簡單的QQ登錄界面的示例代碼
這篇文章主要介紹了Android Studio實現(xiàn)簡單的QQ登錄界面的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Android模仿實現(xiàn)微博詳情頁滑動固定頂部欄的效果實例
這篇文章主要給大家介紹了關(guān)于利用Android模仿實現(xiàn)微博詳情頁滑動固定頂部欄效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Android UI控件RatingBar實現(xiàn)自定義星星評分效果
這篇文章主要為大家詳細(xì)介紹了Android UI控件RatingBar實現(xiàn)自定義星星評分效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02

