Android 七彩手電筒的實現與應用


  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 圖片在


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章