概述
private SeekBar sb_brightness;
private ContentObserver observer = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
if (sb_brightness != null) {
sb_brightness.setProgress(getBrightness());
}
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_setup);
initView();
getContentResolver().registerContentObserver(
Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS), true, observer);
}
/**
* 获得当前亮度
*/
private int getBrightness() {
int brightness = 0;
ContentResolver resolver = ScreenManageActivity.this.getContentResolver();
try {
brightness = Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return brightness;
}
/**
* 设置当前亮度
*
* @param brightness
*/
private void setBrightness(int brightness) {
if (brightness < MIN_BRIGHTNESS) {
brightness = MIN_BRIGHTNESS;
} else if (brightness > MAX_BRIGHTNESS) {
brightness = MAX_BRIGHTNESS;
}
String cmds = "echo " + brightness + " > /sys/class/leds/lcd-backlight/brightness";
try {
Runtime.getRuntime().exec(cmds);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 停止自动亮度调节,改为手动
*/
public void stopAutoBrightness() {
Settings.System.putInt(ScreenManageActivity.this.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
/**
* 改变App当前Window亮度
*
* @param brightness
*/
public void changeAppBrightness(int brightness) {
Window window = this.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
if (brightness == -1) {
lp.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE;
} else {
lp.screenBrightness = (brightness <= 0 ? 1 : brightness) / 255f;
}
window.setAttributes(lp);
}
private void initView() {
sb_brightness = (SeekBar) findViewById(R.id.sb_brightness);
int brightness = getBrightness();
sb_brightness.setMax(255);
sb_brightness.setProgress(brightness);
brightness_value.setText(brightness+"");
Log.e(TAG, "当前亮度:" + brightness);
changeAppBrightness(brightness);
sb_brightness.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
changeAppBrightness(i);
setBrightness(i);
saveBrightness(i);
brightness_value.setText(i+"");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
最后
以上就是真实自行车为你收集整理的android设置和获取系统屏幕亮度的全部内容,希望文章能够帮你解决android设置和获取系统屏幕亮度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复