Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071280
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-02-28 12:51:56

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

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

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

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

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

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

  1. private void setBrightness(float fBright){    
  2.         WindowManager.LayoutParams layoutparam = getWindow().getAttributes();    
  3.         layoutparam .screenBrightness = fBright;       
  4.         getWindow().setAttributes(layoutparam );    
  5.          }   

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

    2 照相机闪光灯

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

      首先打开闪光灯

      

  1. private void TurnOn()  
  2.   {  
  3.     m_CameraObject = Camera.open();  
  4.     Camera.Parameters parameters = m_CameraObject.getParameters();             
  5.     parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);  
  6.     m_CameraObject.setParameters( parameters );           
  7.     m_CameraObject.autoFocus( new Camera.AutoFocusCallback (){  
  8.         public void onAutoFocus(boolean success, Camera camera) {  
  9.               
  10.         }  
  11.           
  12.     });   
  13.     m_CameraObject.startPreview();  
  14.   }  

 然后在关闭闪光灯

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

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

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


  4 其他打开背光的方式,

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



我将APP上传在机锋市场上, 图片在

阅读(1490) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~