本文實(shí)例講述了Android開發(fā)實(shí)現(xiàn)調(diào)節(jié)屏幕亮度功能。分享給大家供大家參考,具體如下:
在很多app中進(jìn)入二維碼顯示界面時(shí)會(huì)自動(dòng)調(diào)整屏幕亮度,那么如何實(shí)現(xiàn)調(diào)節(jié)app的屏幕亮度呢?下面我來為大家介紹:
注:調(diào)節(jié)屏幕亮度的核心思想就是對(duì)安卓系統(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、具體操作
/*** 判斷是否開啟了自動(dòng)亮度調(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í)的亮度* 屏幕亮度最大數(shù)值一般為255,各款手機(jī)有所不同* 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)閉自動(dòng)亮度調(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é)差不多就這樣了。
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注