Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程調節屏幕亮度(背景燈)及保持背景燈常亮的方法

Android編程調節屏幕亮度(背景燈)及保持背景燈常亮的方法

編輯:關於Android編程

本文實例講述了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 stub
fBrightness = (float)progress / (float)Max_Brightness;
lp.screenBrightness = fBrightness;
// 這句得加上,否則屏幕亮度不啟作用
getWindow().setAttributes(lp);
System.out.println("FY_" + fBrightness);
}
};
}

下面是介紹保持背景燈常量的方法:

首先是要獲得權限 :
復制代碼 代碼如下:<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
下面是控制代碼實例

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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved