Android開發(fā)實現(xiàn)調(diào)節(jié)屏幕亮度功能
本文實例講述了Android開發(fā)實現(xiàn)調(diào)節(jié)屏幕亮度功能。分享給大家供大家參考,具體如下:
在很多app中進(jìn)入二維碼顯示界面時會自動調(diào)整屏幕亮度,那么如何實現(xiàn)調(diào)節(jié)app的屏幕亮度呢?下面我來為大家介紹:
注:調(diào)節(jié)屏幕亮度的核心思想就是對安卓系統(tǒng)提供的ContentProvider進(jìn)行操作
1、聲明權(quán)限
需要允許用戶修改系統(tǒng)配置
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
2、具體操作
/**
* 判斷是否開啟了自動亮度調(diào)節(jié)
*/
public static boolean isAutoBrightness(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean automicBrightness = false;
try {
automicBrightness = Settings.System.getInt(resolver,
Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return automicBrightness;
}
/**
* 獲取屏幕的亮度
*/
public static int getScreenBrightness(Context context) {
int nowBrightnessValue = 0;
ContentResolver resolver = context.getContentResolver();
try {
nowBrightnessValue = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Exception e) {
e.printStackTrace();
}
return nowBrightnessValue;
}
/**
* 設(shè)置當(dāng)前Activity顯示時的亮度
* 屏幕亮度最大數(shù)值一般為255,各款手機有所不同
* screenBrightness 的取值范圍在[0,1]之間
*/
public static void setBrightness(Activity activity, int brightness) {
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
activity.getWindow().setAttributes(lp);
}
/**
* 開啟關(guān)閉自動亮度調(diào)節(jié)
*/
public static boolean autoBrightness(Context activity, boolean flag) {
int value = 0;
if (flag) {
value = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; //開啟
} else {
value = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;//關(guān)閉
}
return Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
value);
}
/**
* 保存亮度設(shè)置狀態(tài),退出app也能保持設(shè)置狀態(tài)
*/
public static void saveBrightness(Context context, int brightness) {
ContentResolver resolver = context.getContentResolver();
Uri uri = android.provider.Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
android.provider.Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
resolver.notifyChange(uri, null);
}
好了,亮度調(diào)節(jié)差不多就這樣了。
另外,更多關(guān)于Android權(quán)限控制的說明可點擊此處查看Android權(quán)限操作說明
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android視頻播放器屏幕左側(cè)邊隨手指上下滑動亮度調(diào)節(jié)功能的原理實現(xiàn)
- Android亮度調(diào)節(jié)的幾種實現(xiàn)方法
- Android編程調(diào)節(jié)屏幕亮度(背景燈)及保持背景燈常亮的方法
- Android調(diào)節(jié)屏幕亮度實現(xiàn)代碼
- android 如何設(shè)置開機后屏幕亮度默認(rèn)值為自動調(diào)節(jié)
- 使用android隱藏api實現(xiàn)亮度調(diào)節(jié)的方法
- android 屏幕亮度調(diào)節(jié)方法詳解
- Android 如何實現(xiàn)亮度自動調(diào)節(jié)
相關(guān)文章
android RecycleView實現(xiàn)多級樹形列表
這篇文章主要為大家詳細(xì)介紹了android RecycleView實現(xiàn)多級樹形列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05
Flutter?Widget?之FocusableActionDetector使用詳解
這篇文章主要為大家介紹了Flutter?Widget?之FocusableActionDetector使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android實現(xiàn)短信驗證碼獲取自動填寫功能(詳細(xì)版)
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)短信驗證碼獲取自動填寫功能,很實用的功能分享給大家,感興趣的小伙伴們可以參考一下2016-08-08
Android BottomNavigationView與Fragment重建與重疊問題解決方法探索
這篇文章主要介紹了Android BottomNavigationView與Fragment重建與重疊問題解決,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2023-01-01

