1. 程式人生 > >Android學習筆記(六) 調整手機螢幕亮度Brightness seekbar實現

Android學習筆記(六) 調整手機螢幕亮度Brightness seekbar實現

brightness(亮度)是window中的一個屬性

修改亮度需要取得window屬性

方法為:

  1. WindowManager.LayoutParams layoutParams = getWindow().getAttributes();  
  2.         layoutParams.screenBrightness = b;// b是亮度       
  3. getWindow().setAttributes(layoutParams);  

b是一個浮點數 從0~1 ,表示亮度

例子效果圖(在真機上有效執行)

 

例子程式碼:

  1. package young.ScreenBrightnessSolution;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.view.WindowManager;  
  5. import android.widget.SeekBar;  
  6. import android.widget.TextView;  
  7. import android.widget.SeekBar.OnSeekBarChangeListener;  
  8. publicclass ScreenBrightnessSolution extends Activity {  
  9.     private SeekBar ScreenBrightnessSeekBar;  
  10.     private TextView tView ;  
  11.     /** Called when the activity is first created. */
  12.     @Override
  13.     publicvoid onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.         //WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
  17.         //initView
  18.         tView = (TextView)findViewById(R.id.text);  
  19.         ScreenBrightnessSeekBar = (SeekBar)findViewById(R.id.seekBrightness);  
  20.         //亮度是從0~1中的一個浮點數,由於getProess得到的是Int型,所以擴大10倍,賦值時除以10
  21.         ScreenBrightnessSeekBar.setMax(10);  
  22.         ScreenBrightnessSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  
  23.             publicvoid onStopTrackingTouch(SeekBar seekBar) {  
  24.                 // TODO Auto-generated method stub
  25.                 setScreenBrightness((float)seekBar.getProgress()/10);  
  26.             }  
  27.             publicvoid onStartTrackingTouch(SeekBar seekBar) {  
  28.                 // TODO Auto-generated method stub
  29.             }  
  30.             publicvoid onProgressChanged(SeekBar seekBar, int progress,  
  31.                     boolean fromUser) {  
  32.                 // TODO Auto-generated method stub
  33.             }  
  34.         });  
  35.     }  
  36.     privatevoid setScreenBrightness(float b){  
  37.         //取得window屬性儲存在layoutParams中
  38.         WindowManager.LayoutParams layoutParams = getWindow().getAttributes();  
  39.         layoutParams.screenBrightness = b;//b已經除以10
  40.         getWindow().setAttributes(layoutParams);  
  41.         //顯示修改後的亮度
  42.         layoutParams = getWindow().getAttributes();  
  43.         tView.setText(String.valueOf(layoutParams.screenBrightness));  
  44.     }  
  45. }