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