手电筒小工具,在生活中的应用很广泛,目前的大部分手机都自带手电筒App。今天就和大家一起分享该功能的实现原理,下图分别是安卓Vivo4.0与华为7.0测试的效果图(gif最大不能超过5M,这里剪辑了)。
首先在AndroidManifest.xml中加入下列权限:
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />
####没有闪光灯的设备采用屏幕照明的方式:
/**
*检测 设备是否支持闪光灯
*/
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
screenLight();
}
/**
* 屏幕亮度
*/
private void screenLight() {
Window window=getWindow();
WindowManager.LayoutParams
layoutParams=window.getAttributes();
if (!isOpen ) {
btn.setText("关闭手电筒");
layoutParams.screenBrightness=BRIGHTNESS_OVERRIDE_FULL;
isOpen=true;
}else {
btn.setText("打开手电筒");
layoutParams.screenBrightness=BRIGHTNESS_OVERRIDE_NONE;
isOpen=false;
}
window.setAttributes(layoutParams);
}
安卓6.0以下:
- 打开手电筒
Camera camera= Camera.open();
Camera.Parameters parameters=camera.getParameters(); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
- 关闭手电筒
if (camera == null) {
return; }
camera.stopPreview();
camera.release();