Android編程調節(jié)屏幕亮度(背景燈)及保持背景燈常亮的方法
本文實例講述了Android編程調節(jié)屏幕亮度(背景燈)及保持背景燈常亮的方法。分享給大家供大家參考,具體如下:
Android寫的應用程序其實可以調節(jié)屏幕亮度的,查了一下資料發(fā)現WindowManager.LayoutParams這個類就包含了調節(jié)亮度的參數:
WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 0.1f;
其中參數screenBrightness就是設置屏幕亮度的0.0f屏幕最暗,1.0f屏幕最亮
在此基礎上我又加了一個SeekBar來調節(jié)屏幕亮度,
代碼參考如下:
此外在回調函數中必須有如下這句話 getWindow().setAttributes(lp); 否則不起作用。我在開始的時候在onCreate()函數中直接設的值,沒有這個函數,就能直接調節(jié),但是在回調函數中不加上就不起作用
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);
}
};
}
下面是介紹保持背景燈常量的方法:
首先是要獲得權限 :
下面是控制代碼實例
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開發(fā)相關內容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》
希望本文所述對大家Android程序設計有所幫助。
相關文章
android開發(fā)環(huán)境中SDK文件夾下的所需內容詳解
在本篇文章里小編給大家整理的是關于android開發(fā)環(huán)境中SDK文件夾下的所需內容詳解,有興趣的朋友們參考學習下。2019-09-09
Android開發(fā)實現的幾何圖形工具類GeometryUtil完整實例
這篇文章主要介紹了Android開發(fā)實現的幾何圖形工具類GeometryUtil,涉及Android坐標圖形數值運算相關操作技巧,需要的朋友可以參考下2017-11-11

