Android 七彩手电筒的实现与应用

时间:2023-02-09 11:56:44


  Android 已经很像 PC 中的Windows,今天就以android 上简单的一个简单例子来说明如何入门android 开发。

   现在大家可能经常随身带着手机,但是未必一定会带手电筒,我春节出去玩的时候,晚上将一张照片掉到床下,可是当是宾馆的灯是台灯,照不到床下,找来找去,只有手机,手机还屏幕的光,我就找到了照片,但是真的很难用,因为我当时忘记设置背光不关闭了,一会就暗了,一会儿就暗了。等找到照片,我就想着能不能设计写一个让手电筒,让背光一直都不会关闭。

哈哈,走题了,下面我看一下,手机上我们能利用的光源,

1. 手机背光,也就是屏幕的光源

  Android 修改背光,你可以直接使用驱动进行修改,更通用的方法是使用android SDK 中导出的API接口,这样可以保证你的代码在不同的产品上更加通用性。

那么调节背光,其实只要一点就是要使用Window的一个布局参数的属性,代码如下

private void setBrightness(float fBright){  
WindowManager.LayoutParams layoutparam = getWindow().getAttributes();
layoutparam .screenBrightness = fBright;
getWindow().setAttributes(layoutparam );
}

使用过程中一定要注意,fBright 不能为零,如果是0, 那么Android 手机就锁屏了。 这一点是一定要注意的。 要想一直保持背光不灭,那么就是使用timer 或者线程。在timer 中反复使用该函数。

    2 照相机闪光灯

闪光灯平时基本上都用不着, 能用的上就是照相,或者和光学比较敏感的应用的APP, 如“心脏速率测速仪”,这些APP 比较好玩,但是涉及了一些图像处理算法。我们这个是入门,所以就将其作为手电筒来使用。

      首先打开闪光灯

      

  private void TurnOn()
{
m_CameraObject = Camera.open();
Camera.Parameters parameters = m_CameraObject.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
m_CameraObject.setParameters( parameters );
m_CameraObject.autoFocus( new Camera.AutoFocusCallback (){
public void onAutoFocus(boolean success, Camera camera) {

}

});
m_CameraObject.startPreview();
}

 然后在关闭闪光灯

 private void TurnOff(){
if ( m_CameraObject != null ){
m_CameraObject.stopPreview();
m_CameraObject.release();
}
}
     3. 彩色手电筒
    

为了能使光源变化有不同颜色,我们可以直接设置在Activity 中设置窗体的背景色,

this.getWindow().setBackgroundDrawable(drawable); drawable 只要构建一个ColorDrawable 对象就可以,有了以上代码,就可以实现手电筒,如果使用 setBrightness 为sin 或者cos 函数的值,想一想会屏幕会怎么样,那个时候,就是闪烁了。当然闪烁函数也可以自己定义,什么样的都行。


  4 其他打开背光的方式,

    直接使用so 文件驱动驱动直接打开,或者使用power 服务,当然这个部分要求对C/c++ 编程有一定了解。



我将APP上传在机锋市场上,http://apk.gfan.com/Product/App224747.html 图片在Android 七彩手电筒的实现与应用


源码所在位置http://download.csdn.net/detail/zwh37333/4111918