为了控制屏幕的亮度,特地做了一个工具类文件,直接贴代码,个别问题说明如下:
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 stub
this.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~100
public 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~100
public 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
分享到:
相关推荐
简单的一demo 实现修改当前应用亮度和调用系统亮度1.滑动SeekBar 改变当前屏幕的亮度值 2.点击button 调用系统的亮度(手动和自动两种模式) 根据系统判断是手动还是自动
NightShifter这是一个简单的macOS菜单栏应用,用于更改当前的Mac的亮度
拉到滚动条后,点应用才开始实际应用。 工具附带源码下载。C#源码。 里面有已经编译好的exe,可以直接运行(需要.net框架) C#调节显示器亮度源码,网吧显示器亮度调节工具_天下网吧APP_网吧网咖APP
项目请参见:https://handsome-man.blog.csdn.net/article/details/116572729 通过使用IMAQ BCGLookup对图像进行亮度、对比度和高低灰度级压缩的例子理解图像灰度变换的应用方法。 项目可直接运行~
软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、...
该应用程序将一个新图标插入系统托盘,您可以在其中单击以立即访问所有兼容监视器的亮度级别。 多显示器屏幕亮度调节工具 Twinkle Tray 中文版多显示器屏幕亮度调节工具 Twinkle Tray 中文版 Twinkle Tray 特色: ...
Twinkle Tray官方版是一款专业的屏幕亮度调节工具。Twinkle Tray最新版支持定时以及快捷键进行亮点调节功能,用户能够...该应用程序将一个新图标插入系统托盘,您可以在其中单击以立即访问所有兼容监视器的亮度级别。
菜单栏亮度MacOS应用程序可更改菜单栏上的屏幕亮度。安装(仅适用于macOS)用法⌘+:打开选项窗口。 在首选项窗口中,您可以指定是否在登录时打开菜单栏亮度并退出应用程序。执照麻省理工学院:copyright: 感谢的源...
其实,调节屏幕亮度的场景应用很广,例如很多视频应用都响应touch事件来进行亮度调节。 屏幕亮度调节模式 首先,需要明确屏幕亮度有两种调节模式: Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值为1,自动...
适用范围:当前界面需对亮度进行调整,且退出当前界面对系统的亮度和其他软件亮度不做影响的方法。 自己构建函数方法(方法名可自己更改):SetSystemLight private void SetSystemLight(int lightnumber){ Window...
您可以通过在 Labeler App 单独启动的图形窗口上更改图像窗口宽度和窗口中心来调整对比度和亮度。 此工具可与 imageLabeler、videoLabeler 和 groundTruthLabeler 一起使用。请参阅 adjustContrast.m 的标题以了解...
我们发现大多数笔记本电脑用户会随着光线的变化而手动更改笔记本电脑的亮度。以下是LDR。我们可以通过使用LDR解决此问题。这是LDR的应用之一。 这个项目在Bolt IoT wifi模块的帮助下将控制笔记本电脑屏幕的亮度,并...
支持手势调节亮度/音量 记住播放进度 可以播放网络 m3u8 视频 可以播放本地 mp4 视频 支持本地分段 mp4 视频的连续播放 功能多样化,除了手势控制之外对于播放资源的选择也是丰富多样,手势控制也比较方便,消除了...
润赁雍泊嫡开破冀脖贬骋冬粘浆滤巫咒香邀瓢刁署智能照明控制系统和应用卖辛怒破喀 营叹蹄争袜享雕蓉陋闰糯依圣魁抢用隔厌耙候勾谍陛旺往释行培鼓兽贱饺仙雀镑曲焰煽 丑虎忌恨是柒警萝邑藕毅汾毕枕姐颧页橇耻爵题湍姻...
本文开发了一套软件系统,这种软件系统在不更改用户现有视频监控系统的硬件基础上,通过终端嵌入本发明的视频处理系统软件,对视频信号进行恢复和处理,克服光照的不良影响。该视频处理系统利用图像处理技术对视频...
定期灯介绍定期光源(正式更新光源)是AppDaemon的自动光源亮度和色温调整工具。 该代码将作用于提供的灯光列表,以使其与当前灯光参数保持同步。 使该应用与其他应用(即自定义组件昼夜照明,自适应照明或内置Flux...
该应用程序将一个新图标插入系统托盘,您可以在其中单击以立即访问所有兼容监视器的亮度级别。 特征: 向系统托盘添加亮度滑块,类似于内置的Windows 10音量面板。 标准化不同显示器上的背光。 可以根据一天中...
win7删除多余系统启动项 加快开机速度 解决开机速度慢的问题 例如: 下面我说的是WIN7的服务.... Adaptive Brightness 监视氛围光传感器,以检测氛围光的变化并调节显示器的亮度。如果此服务停止或被禁用,显示器...
HueMagic 为 Node-RED 提供了多个输入和输出节点,是控制飞利浦 Hue 桥、灯、组、场景、规则、按钮/开关、运动传感器、温度传感器和亮度传感器的最深入和易于使用的解决方案. 特征 简单而全面地控制 Hue Bridge 和...
注意:“月球”会更改监视器的实际(物理)亮度和对比度。 它不使用软件覆盖。 目录 安装方式 从下载DMG 从下载DMG brew install --cask lunar 产品特点 基于Macbook或iMac的内置光传感器的基于同步的自适应亮度...