Android调整手机屏幕亮度Brightness seekbar实现

来源:互联网 发布:域名被恶意投诉举报 编辑:程序博客网 时间:2024/05/21 21:42

brightness(亮度)是window中的一个属性

 

修改亮度需要取得window属性

方法为:

 

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

 

b是一个浮点数 从0~1 ,表示亮度

 

例子效果图(在真机上有效运行)

 

 

例子代码:

 

[java] view plaincopy
  1. package young.ScreenBrightnessSolution;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.WindowManager;  
  6. import android.widget.SeekBar;  
  7. import android.widget.TextView;  
  8. import android.widget.SeekBar.OnSeekBarChangeListener;  
  9.   
  10. public class ScreenBrightnessSolution extends Activity {  
  11.     private SeekBar ScreenBrightnessSeekBar;  
  12.     private TextView tView ;  
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.           
  19.         //WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);  
  20.           
  21.           
  22.           
  23.         //initView  
  24.         tView = (TextView)findViewById(R.id.text);  
  25.         ScreenBrightnessSeekBar = (SeekBar)findViewById(R.id.seekBrightness);  
  26.         //亮度是从0~1中的一个浮点数,由于getProess得到的是Int型,所以扩大10倍,赋值时除以10  
  27.         ScreenBrightnessSeekBar.setMax(10);  
  28.         ScreenBrightnessSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  
  29.               
  30.             public void onStopTrackingTouch(SeekBar seekBar) {  
  31.                 // TODO Auto-generated method stub  
  32.                 setScreenBrightness((float)seekBar.getProgress()/10);  
  33.             }  
  34.               
  35.             public void onStartTrackingTouch(SeekBar seekBar) {  
  36.                 // TODO Auto-generated method stub  
  37.                   
  38.             }  
  39.               
  40.             public void onProgressChanged(SeekBar seekBar, int progress,  
  41.                     boolean fromUser) {  
  42.                 // TODO Auto-generated method stub  
  43.                   
  44.             }  
  45.         });  
  46.     }  
  47.       
  48.     private void setScreenBrightness(float b){  
  49.         //取得window属性保存在layoutParams中  
  50.         WindowManager.LayoutParams layoutParams = getWindow().getAttributes();  
  51.         layoutParams.screenBrightness = b;//b已经除以10  
  52.         getWindow().setAttributes(layoutParams);  
  53.         //显示修改后的亮度  
  54.         layoutParams = getWindow().getAttributes();  
  55.         tView.setText(String.valueOf(layoutParams.screenBrightness));  
  56.     }  
  57. }  

0 0
原创粉丝点击