修改应用亮度和系统亮度
来源:互联网 发布:excel表格重复数据筛选 编辑:程序博客网 时间:2024/04/30 10:18
为了控制屏幕的亮度,特地做了一个工具类文件,直接贴代码,个别问题说明如下:
1、修改系统亮度值时,因为要修改Settings.System.SCREEN_BRIGHTNESS 的值,所以需要相应的系统权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
2、即使系统默认已经开启了自动调整亮度功能,我们仍然可以直接对系统亮度进行修改。
3、系统亮度值范围:0~255;当前应用窗口亮度范围:0.0f~1.0f。(本代码已将两个范围统一转换为0~100)
4、亮度调至0时,系统屏幕将黑屏,按键及触控均停止响应。(本代码限制最低亮度值为1)
源代码如下:
package cn.com.bfyb.brightnesscontrol;import android.app.Activity;import android.content.ContentResolver;import android.net.Uri;import android.provider.Settings;import android.provider.Settings.SettingNotFoundException;import android.view.WindowManager;public class BrightnessControler {private Activity activity;private ContentResolver contentResolver;private int stepValue = 10;public BrightnessControler(Activity activity) {// TODO Auto-generated constructor stubthis.activity = activity;contentResolver = activity.getContentResolver();}// 系统当前是否自动调整亮度public boolean isAutoBrightness() {boolean automicBrightness = false;try {automicBrightness = Settings.System.getInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;} catch (SettingNotFoundException e) {e.printStackTrace();}return automicBrightness;}// 获取系统亮度值:0~100public int getSysBrightness() {int nowBrightnessValue = 0;try {nowBrightnessValue = (int) (android.provider.Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS) / 2.55f);} catch (Exception e) {e.printStackTrace();}return nowBrightnessValue;}// 获取当前应用亮度值:0~100public int getAppBrightness() {return (int) (activity.getWindow().getAttributes().screenBrightness * 100);}// 设置系统亮度public void setSysBrightness(int brightness) {// if(isAutoBrightness())// stopAutoBrightness();setAppBrightness(brightness);// 保存亮度至系统saveBrightnessToSys(brightness);}// 设置当前应用亮度public void setAppBrightness(int brightness) {WindowManager.LayoutParams lp = activity.getWindow().getAttributes();lp.screenBrightness = Float.valueOf(brightness) * (1f / 100f);activity.getWindow().setAttributes(lp);}// 系统亮度增加public void lighterSys() {int bri = getSysBrightness() + stepValue;if (bri > 100)bri = 100;setSysBrightness(bri);}// 系统亮度降低public void darkerSys() {int bri = getSysBrightness() - stepValue;if (bri < 1)bri = 1;setSysBrightness(bri);}// 当前应用亮度增加public void lighterApp() {int bri = getAppBrightness() + stepValue;if (bri > 100)bri = 100;setAppBrightness(bri);}// 当前应用亮度降低public void darkerApp() {int bri = getAppBrightness() - stepValue;if (bri < 1)bri = 1;setAppBrightness(bri);}// 设置亮度单步增减值public void setStepValue(int step) {this.stepValue = step;}// 关闭系统自动调整亮度public void stopAutoBrightness() {Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}// 开启系统自动调整亮度public void startAutoBrightness() {Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);}// 保存亮度值至系统private void saveBrightnessToSys(int brightness) {Uri uri = android.provider.Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);android.provider.Settings.System.putInt(contentResolver,android.provider.Settings.System.SCREEN_BRIGHTNESS,(int) (brightness * 2.55f));contentResolver.notifyChange(uri, null);}}
代码下载地址:http://pan.baidu.com/s/1kT7JmGv
8 0
- 修改应用亮度和系统亮度
- Android 调节屏幕亮度(当前应用和系统亮度)
- iOS 修改系统亮度
- 如何调整系统屏幕亮度和程序内部屏幕亮度
- 亮度
- Android 系统默认亮度值的修改
- 安卓修改系统的屏幕亮度
- 如何修改Android系统的默认亮度
- 修改背光亮度和自动旋转
- android调节屏幕亮度(包括只修改应用程序和修改系统)
- android调节屏幕亮度(包括只修改应用程序和修改系统)
- android调节屏幕亮度(包括只修改应用程序和修改系统)
- android调节屏幕亮度(包括只修改应用程序和修改系统)
- iOS调整系统屏幕亮度和音量
- iOS调整系统屏幕亮度和音量
- iOS调整系统屏幕亮度和音量
- Android修改屏幕亮度
- 修改 ubuntu 亮度
- 怎样替换html中的iframe标签
- HTTP协议简介
- ubuntu 13.10 64位系统 下Android 项目R文件错误
- Runtime类
- linux下生成rsa的key对
- 修改应用亮度和系统亮度
- 无奈!浮沉华世
- Spring自动代理创建器
- java网路编程学习之路(2)
- JAVA反射及其实例
- jquery-学习笔记1
- 调整积极心态,让工作更加高效、顺利
- rpy2 图形,summary 显示
- spring mvc 小贴士