編輯:關於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程序設計有所幫助。
Android中不得不談的setContentView
寫在前面:幾個月之前在做項目的布局優化時,使用 Hierarchy Viewer 查看項目的層級結構,然後發現頂層的布局並不是在XML中我寫的根布局,而是嵌套了多層 La
android 項目實戰——超級課程表課表一鍵提取功能
如果你是在校大學生,或許你用多了各種課程表,比如課程格子,超級課程表。它們都有一個共同點就是可以一鍵導入教務處的課程。那麼一直都是用戶的我們,沒有考慮過它是
Android studio導入開源項目
前幾天從github上下載一個開源項目,發現他並不是以前Eclipse那種的目錄結構 而是最近在用到的android studio的文件目錄。從上圖中我們可以看到多次出
Android中使用GridView和ImageViewSwitcher實現電子相冊簡單功能實例
我們在手機上查看相冊時,首先看到的是網格狀的圖片展示界面,然後我們選擇想要欣賞的照片點擊進入,這樣就可以全屏觀看該照片,並且可以通過左右滑動來切換照片。如下圖的顯示效果: