Android編程設(shè)置屏幕亮度的方法
本文實(shí)例講述了Android編程設(shè)置屏幕亮度的方法。分享給大家供大家參考,具體如下:
使用場景
最近在研究AndroidL Settings的代碼,寫了一個(gè)簡單的控件來操控屏幕亮度。
其實(shí),調(diào)節(jié)屏幕亮度的場景應(yīng)用很廣,例如很多視頻應(yīng)用都響應(yīng)touch事件來進(jìn)行亮度調(diào)節(jié)。
屏幕亮度調(diào)節(jié)模式
首先,需要明確屏幕亮度有兩種調(diào)節(jié)模式:
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值為1,自動(dòng)調(diào)節(jié)亮度。
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL:值為0,手動(dòng)模式。
如果需要實(shí)現(xiàn)亮度調(diào)節(jié),首先需要設(shè)置屏幕亮度調(diào)節(jié)模式為手動(dòng)模式。
設(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即手動(dòng)調(diào)節(jié)時(shí),可以通過如下代碼設(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事件處理屏幕亮度時(shí),并不是修改的系統(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ā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
- android 屏幕亮度調(diào)節(jié)方法詳解
- Android調(diào)節(jié)屏幕亮度實(shí)現(xiàn)代碼
- android 如何設(shè)置開機(jī)后屏幕亮度默認(rèn)值為自動(dòng)調(diào)節(jié)
- Android編程調(diào)節(jié)屏幕亮度(背景燈)及保持背景燈常亮的方法
- Android中 視頻屏幕左半部分上下滑動(dòng)改變亮度右半部分上下滑動(dòng)改變聲音
- Android視頻播放器屏幕左側(cè)邊隨手指上下滑動(dòng)亮度調(diào)節(jié)功能的原理實(shí)現(xiàn)
- Android開發(fā)實(shí)現(xiàn)調(diào)節(jié)屏幕亮度功能
相關(guān)文章
Flutter實(shí)現(xiàn)自定義搜索框AppBar的示例代碼
開發(fā)中,頁面頭部為搜索樣式的設(shè)計(jì)非常常見,為了可以像系統(tǒng)AppBar那樣使用,本文將利用Flutter自定義一個(gè)搜索框,感興趣的可以了解一下2022-04-04
android studio集成ijkplayer的示例代碼
本篇文章主要介紹了android studio集成ijkplayer的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
Flutter Android應(yīng)用啟動(dòng)白屏的解決方案
任何一個(gè)app基本都會設(shè)計(jì)一個(gè)啟動(dòng)頁,今天我們就來看看怎么在flutter項(xiàng)目中設(shè)置啟動(dòng)頁,這篇文章主要給大家介紹了關(guān)于Flutter Android應(yīng)用啟動(dòng)白屏解決的相關(guān)資料,需要的朋友可以參考下2021-11-11
Android 中動(dòng)態(tài)加載.jar的實(shí)現(xiàn)步驟
本文介紹動(dòng)態(tài)加載 .jar的實(shí)現(xiàn)步驟,這將對你的android開發(fā)很有幫助,剛興趣的朋友可以了解下哦2013-01-01
Android開發(fā)中Google為什么不讓用Handler的runWithScissors()
這篇文章主要介紹了Android開發(fā)中Google為什么不讓用Handler的runWithScissors(),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09

