Android編程設(shè)置屏幕亮度的方法
本文實例講述了Android編程設(shè)置屏幕亮度的方法。分享給大家供大家參考,具體如下:
使用場景
最近在研究AndroidL Settings的代碼,寫了一個簡單的控件來操控屏幕亮度。
其實,調(diào)節(jié)屏幕亮度的場景應(yīng)用很廣,例如很多視頻應(yīng)用都響應(yīng)touch事件來進行亮度調(diào)節(jié)。
屏幕亮度調(diào)節(jié)模式
首先,需要明確屏幕亮度有兩種調(diào)節(jié)模式:
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
:值為1,自動調(diào)節(jié)亮度。
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
:值為0,手動模式。
如果需要實現(xiàn)亮度調(diào)節(jié),首先需要設(shè)置屏幕亮度調(diào)節(jié)模式為手動模式。
設(shè)置方法如下:
public void setScrennManualMode() { ContentResolver contentResolver = getActivity().getContentResolver(); try { int mode = Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE); if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); } }
獲取屏幕亮度值
這里需要了解:
1. 屏幕最大亮度為255。
2. 屏幕最低亮度為0。
3. 屏幕亮度值范圍必須位于:0~255。
設(shè)置屏幕亮度的方法:
private int getScreenBrightness() { ContentResolver contentResolver = getActivity().getContentResolver(); int defVal = 125; return Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, defVal); }
設(shè)置系統(tǒng)屏幕亮度值
在設(shè)置系統(tǒng)屏幕亮度前,需要保證AndroidManifest.xml中聲明如下權(quán)限:
當(dāng)屏幕亮度模式為0即手動調(diào)節(jié)時,可以通過如下代碼設(shè)置屏幕亮度:
private void saveScreenBrightness() { setScrennManualMode(); ContentResolver contentResolver = getActivity().getContentResolver(); int value = 255; // 設(shè)置亮度值為255 Settings.System.putInt(mContentResolver, Settings.System.SCREEN_BRIGHTNESS, value); }
設(shè)置當(dāng)前窗口亮度
很多視頻應(yīng)用,在touch事件處理屏幕亮度時,并不是修改的系統(tǒng)亮度值,而是修改當(dāng)前應(yīng)用所在窗口的亮度。具體做法就是修改LayoutParams中的screenBrightness屬性。參考代碼如下:
private void setWindowBrightness(int brightness) { Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.screenBrightness = brightness / 255.0f; window.setAttributes(lp); }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android控件之SlidingDrawer(滑動式抽屜)詳解與實例分享
這篇文章詳細介紹了Android控件之SlidingDrawer(滑動式抽屜)與實例,有需要的朋友可以參考一下2013-10-10Android使用SmsManager實現(xiàn)短信發(fā)送功能
這篇文章主要為大家詳細介紹了Android使用SmsManager實現(xiàn)短信發(fā)送功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11關(guān)于gradle你應(yīng)該知道的一些小事
這篇文章主要給大家介紹了關(guān)于gradle你應(yīng)該知道的一些小事,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用gradle具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10PagerSlidingTabStrip制作Android帶標(biāo)簽的多界面滑動切換
這篇文章主要介紹了使用PagerSlidingTabStrip制作Android帶標(biāo)簽的多界面滑動切換效果的方法,PagerSlidingTabStrip是GitHub上的一個開源項目,調(diào)用這個庫可以少寫不少代碼XD 需要的朋友可以參考下2016-04-04