分类:Android 移动开发2012-10-06 19:0399人阅读评论(0)收藏举报
Android写的应用程序其实可以调节屏幕亮度的,查了一下资料发现WindowManager.LayoutParams这个类就包含了调节亮度的参数: WindowManager.LayoutParamslp = getWindow().getAttributes(); lp.screenBrightness = 0.1f;
其中参数screenBrightness就是设置屏幕亮度的0.0f屏幕最暗,1.0f屏幕最亮 在此基础上我又加了一个SeekBar来调节屏幕亮度, 代码参考如下:
此外在回调函数中必须有如下这句话getWindow().setAttributes(lp); 否则不起作用。我在开始的时候在onCreate()函数中直接设的值,没有这个函数,就能直接调节,但是在回调函数中不加上就不起作用
[java]view plaincopyprint?
1. publicclassBLightActivityextends Activity { 2. /** Called when the activity is first created. */ 3. intMax_Brightness = 100; 4. SeekBarbSeekBar = null; 5. floatfBrightness = 0.0f;
6. WindowManager.LayoutParamslp = null; 7. @Override
8. publicvoidonCreate(Bundle savedInstanceState) { 9. super.onCreate(savedInstanceState); 10. setContentView(R.layout.main); 11.
12. bSeekBar = (SeekBar) findViewById(R.id.bLightBar); 13. bSeekBar.setOnSeekBarChangeListener(seekListener); 14. bSeekBar.setMax(Max_Brightness); 15.
16. lp = getWindow().getAttributes(); 17. // lp.screenBrightness = 0.1f; 18. } 19.
20. OnSeekBarChangeListenerseekListener = newOnSeekBarChangeListener() { 21. publicvoidonStopTrackingTouch(SeekBarseekBar) {
22. // TODO Auto-generated method stub 23. }
24. publicvoidonStartTrackingTouch(SeekBarseekBar) { 25. // TODO Auto-generated method stub 26. }
27. publicvoidonProgressChanged(SeekBarseekBar, int progress, 28. booleanfromUser) {
29. // TODO Auto-generated method stub
30. fBrightness = (float)progress / (float)Max_Brightness; 31. lp.screenBrightness = fBrightness; 32. // 这句得加上,否则屏幕亮度不启作用 33. getWindow().setAttributes(lp);
34. System.out.println(\"FY_\" + fBrightness); 35. } 36. }; 37. }
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务