本文實例講述了Android編程調節屏幕亮度(背景燈)及保持背景燈常亮的方法。分享給大家供大家參考,具體如下:
Android寫的應用程序其實可以調節屏幕亮度的,查了一下資料發現WindowManager.LayoutParams這個類就包含了調節亮度的參數:
WindowManager.LayoutParams lp = getWindow().getAttributes();lp.screenBrightness = 0.1f;
其中參數screenBrightness就是設置屏幕亮度的0.0f屏幕最暗,1.0f屏幕最亮
在此基礎上我又加了一個SeekBar來調節屏幕亮度,
代碼參考如下:
此外在回調函數中必須有如下這句話 getWindow().setAttributes(lp); 否則不起作用。我在開始的時候在onCreate()函數中直接設的值,沒有這個函數,就能直接調節,但是在回調函數中不加上就不起作用
public class BLightActivity extends Activity {/** Called when the activity is first created. */int Max_Brightness = 100;SeekBar bSeekBar = null;float fBrightness = 0.0f;WindowManager.LayoutParams lp = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bSeekBar = (SeekBar) findViewById(R.id.bLightBar); bSeekBar.setOnSeekBarChangeListener(seekListener); bSeekBar.setMax(Max_Brightness); lp = getWindow().getAttributes();// lp.screenBrightness = 0.1f; }OnSeekBarChangeListener seekListener = new OnSeekBarChangeListener() {public void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}public void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {// TODO Auto-generated method stubfBrightness = (float)progress / (float)Max_Brightness;lp.screenBrightness = fBrightness;// 這句得加上,否則屏幕亮度不啟作用getWindow().setAttributes(lp);System.out.println("FY_" + fBrightness);}};}下面是介紹保持背景燈常量的方法:
首先是要獲得權限 :
public class test extends Activity{ PowerManager powerManager = null; WakeLock wakeLock = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.main); this.powerManager = (PowerManager)this.getSystemService(Context.POWER_SERVICE); this.wakeLock = this.powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock"); this.wakeLock.acquire(); } @Override protected void onResume() { super.onResume(); // 重新獲取 this.wakeLock.acquire(); } @Override protected void onPause() { super.onPause(); // 在Activity銷毀的時候釋放wakeLock this.wakeLock.release(); } }更多關于Android開發相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選