Android调节屏幕亮度分析源码
来源:互联网 发布:淘宝店装修视频 编辑:程序博客网 时间:2024/05/22 02:08
大家知道在android中是怎么调节亮度了吗,接下来刘让我们去看看使用android中调亮点的代码解析吧
brightness(亮度)是window中的一个属性
修改亮度需要取得window属性
方法为:
代码片段,双击复制
b是一个浮点数 从0~1 ,表示亮度
因此可以通过设置b的值预览屏幕的亮度,然后通过
Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS,brightness);s设置屏幕亮度,brightness值为30-255
实现如图所示效果代码:
1.自定义一个SeekbarPreference继承dialogPreference实现亮度预览
代码片段,双击复制
2.调节亮度
代码片段,双击复制
brightness(亮度)是window中的一个属性
修改亮度需要取得window属性
方法为:
01
02
03
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = b;
// b是亮度
getWindow().setAttributes(layoutParams);
b是一个浮点数 从0~1 ,表示亮度
因此可以通过设置b的值预览屏幕的亮度,然后通过
Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS,brightness);s设置屏幕亮度,brightness值为30-255
实现如图所示效果代码:
1.自定义一个SeekbarPreference继承dialogPreference实现亮度预览
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public
class
SeekBarPreference
extends
DialogPreference
implements
OnSeekBarChangeListener{
private
static
final
String TAG =
"SeekBarPreference"
;
private
static
final
int
MINIMUM_BACKLIGHT =
30
;
//最低亮度
private
static
final
int
MAXIMUM_BACKLIGHT =
255
;
private
SeekBar bar;
private
int
oldBrightness;
private
SharedPreferences sp;
private
static
String KEY=
"brightness"
;
public
SeekBarPreference(Context context, AttributeSet attrs) {
super
(context, attrs);
setDialogLayoutResource(R.layout.seekbar_dialog);
setPositiveButtonText(android.R.string.ok);
setNegativeButtonText(android.R.string.cancel);
setDialogIcon(R.drawable.ic_settings_display);
}
@Override
protected
void
onBindDialogView(View view) {
super
.onBindDialogView(view);
sp=getSharedPreferences();
bar= (SeekBar) view.findViewById(R.id.seekbar);
bar.setMax(MAXIMUM_BACKLIGHT-MINIMUM_BACKLIGHT);
oldBrightness=sp.getInt(KEY,
125
);
bar.setOnSeekBarChangeListener(
this
);
//进度条改变 <a href="\"http://www.2cto.com\"" target="\"_blank\"">www.2cto.com</a>
bar.setProgress(oldBrightness-MINIMUM_BACKLIGHT);
//初始化进度条
}
@Override
protected
void
onDialogClosed(
boolean
positiveResult) {
// TODO Auto-generated method stub
super
.onDialogClosed(positiveResult);
if
(positiveResult){
/*do nothing*/
}
else
{
sp.edit().putInt(KEY, oldBrightness).commit();
}
}
@Override
public
void
onProgressChanged(SeekBar seekbar,
int
progress,
boolean
arg2) {
// TODO Auto-generated method stub
sp.edit().putInt(KEY, progress+MINIMUM_BACKLIGHT).commit();
//进度条改变时改变存储数据,
}
@Override
public
void
onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@Override
public
void
onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
}
2.调节亮度
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public
class
ControlBrightness
extends
PreferenceActivity
implements
OnSharedPreferenceChangeListener {
private
SeekBarPreference seekBarPreference;
private
Button enBtn;
private
Button disBtn;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super
.onCreate(savedInstanceState);
setContentView(R.layout.buttonbar);
addPreferencesFromResource(R.xml.custom_setting);
SharedPreferences sp= getSharedPreferences(BatteryUtils.FILE_NAME, MODE_WORLD_WRITEABLE);
sp.registerOnSharedPreferenceChangeListener(
this
);
//监听数据变化,调节屏幕亮度
}
@Override
public
void
onSharedPreferenceChanged(SharedPreferences sp, String key) {
// TODO Auto-generated method stub
if
(TextUtils.equals(key,
"brightness"
)){
int
brightness=sp.getInt(
"brightness"
,
125
);
LayoutParams lp= getWindow().getAttributes();
lp.screenBrightness=brightness/
255
.0f;
getWindow().setAttributes(lp);
}
}
}
- Android调节屏幕亮度分析源码
- Android 屏幕亮度调节
- android调节屏幕亮度
- Android屏幕亮度调节
- android调节屏幕亮度
- Android 调节屏幕亮度
- Android:调节屏幕亮度
- android 调节屏幕亮度
- android调节屏幕亮度
- android调节屏幕亮度
- android屏幕亮度调节
- Android 调节屏幕亮度
- android 调节屏幕亮度
- Android屏幕亮度调节
- android 调节屏幕亮度
- Android调节屏幕亮度
- Android屏幕亮度调节
- android屏幕亮度调节
- 运行jar 提示 Failed to load Main-Class manifest attribute from
- 后缀数组--(最长公共前缀)
- 不用递归和辅助空间对二叉树进行遍历
- 经济学人:比特币或破产 仍将助力数字货币发展
- 基于cocos2d-x的2.1.3 android真机调试图片加载问题的深究
- Android调节屏幕亮度分析源码
- javaweb - 过滤器
- hadoop权限管理
- UNIX环境高级编程读书笔记(十)—信号 (2)
- Redis的键值设置(4)
- jQuery获取Select选择的Text和 Value(转)
- 解决linux 接投影仪时显示窗口很小的问题
- mysql查询一天内,一周内,一月内数据
- hadoop mapred-queue-acls 配置