Android设置屏幕亮度的两种方式
来源:互联网 发布:网络推广软件代理 编辑:程序博客网 时间:2024/06/11 07:33
Android设置屏幕亮度的两种方式
标签: android界面
2016-04-25 17:01 1793人阅读 评论(0)收藏举报
本文章已收录于:
![](http://static.blog.csdn.net/images/category_icon.jpg)
作者同类文章X
版权声明:本文为博主原创文章,未经博主允许不得转载。
权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
最近项目需要设置Android设备的亮度,本来以为很简单的功能,结果搞了好久才搞定,Android在这里埋了一个坑。下面具体说下:Android系统的亮度值是0~255,数据类型为int型。设置屏幕亮度有两种方式,一种是通过WindowManager去设置当前界面的亮度——注意,是当前界面,不是系统的亮度。这种方式代码如下
private void setLight(Activity context, int brightness) { WindowManager.LayoutParams lp = context.getWindow().getAttributes(); lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f); context.getWindow().setAttributes(lp);}
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
需要注意其中的context的类型是Activity,不能是Context。这种方式的特点,是**只在当前设置的界面生效**,离开此界面后,屏幕亮度受亮度自动调节的开关控制。换句话说,用这种方式设置当前界面的亮度时,会使亮度自动调节失效。只有离开此界面,亮度自动调节继续生效。这种方式适用某些特殊的,需要高亮显示界面。第二种方式时通过修改系统数据库来设置亮度。代码如下:
public void saveBrightness(Activity activity, int brightness) { Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS); Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); activity.getContentResolver().notifyChange(uri, null); }
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
这种方式的特点是可以修改系统亮度,即使退出当前界面,设置的亮度值依然生效。这种方式设置的亮度值受亮度自动调节开关的影响。
即开关关闭时,此值生效;开关关闭时,此值其实并没有什么卵用。需要注意的时,设置时需要向系统数据库写入数据,因此需要相应的权限才行。这两种方式各有各的作用与使用场景,使用的时候需要千万注意,不要混淆。功能虽小,坑却不小,特作文以记之。
补充
/** * android 调节屏幕亮度 * <p> * <uses-permission android:name="android.permission.WRITE_SETTINGS"/> * * @param level * @param context */public void setBrightness(int level, Activity context) { ContentResolver contentResolver = context.getContentResolver(); Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, level); Window window = context.getWindow(); WindowManager.LayoutParams attributes = window.getAttributes(); float flevel = level; attributes.screenBrightness = flevel / 255; context.getWindow().setAttributes(attributes);}
- 顶
- 0
- 踩
- 0
- 上一篇横向滑动加载更多的控件的实现
- 下一篇利用webview处理portal认证的wifi
我的同类文章
http://blog.csdn.net
- •利用webview处理portal认证的wifi2016-06-21
0 0
- android屏幕亮度设置两种方式
- Android设置屏幕亮度的两种方式
- Android设置屏幕亮度的两种方式
- android设置屏幕亮度的两种方式
- Android设置屏幕亮度的两种方式
- android 设置屏幕亮度
- android设置屏幕亮度
- Android 设置屏幕亮度
- Android 设置屏幕亮度
- Android设置屏幕亮度
- Android 设置屏幕亮度
- android 屏幕亮度设置
- Android设置屏幕亮度
- Android Android屏幕亮度设置
- android 设置系统屏幕亮度
- android 设置系统屏幕亮度
- android 设置系统屏幕亮度
- android 设置系统屏幕亮度
- AndroidStudio上传代码到码云(Oschina)教程
- 数据库空间能撑多久? 容量规划
- SAP(abap) 常用TCode整理
- gile可以加载处圆角或圆形头像
- OKHttp进行Https认证
- Android设置屏幕亮度的两种方式
- android6.0以上特殊权限
- hud 4722 Good Numbers(数位 DP)
- android学习笔记之Task and back stack
- aidl简单的使用步骤
- 秒解!友盟多渠道批量打包+Bugly运营模块获取渠道功能流程详解
- Java中的关键字volitile
- 【易康eCognition】面向对象的图像分类学习
- 为什么子类不能访问基类的private成员?为什么要这样设计?