在我的应用程序中,我添加了一个控制屏幕亮度的SeekBar
。有什么好用的。
我在Oncreate()
中获取设备的屏幕亮度,并设置SeekBar
的进度。
但是,当我改变seekbar进程时,当我将它设置为最小值(即设置为零)时,设备会卡住,我必须重新启动设备才能使其再次工作。
我的代码有什么问题。请帮帮我
在oncreate()
中,我有以下代码,
try {
BackLightValue = android.provider.Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS);
brightnessscrollbar.setProgress(BackLightValue);
System.out.println("Baclightvalue is "+BackLightValue);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SeekBarClickListener
brightnessscrollbar.setOnSeekBarChangeListener(
new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// TODO Auto-generated method stub
BackLightValue = (int) ((float)arg1/100);
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
}
@Override
public void onStopTrackingTouch(SeekBar arg0) {
int SysBackLightValue = (int)(BackLightValue * 255);
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,
SysBackLightValue);
}
});
最佳答案
我知道这个设备被卡在了0的位置
所以我给了一个条件
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// TODO Auto-generated method stub
BackLightValue = (int) ((float)arg1/100);
if(arg1>5){
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);
}
}
它现在起作用了,就像一个符咒。
关于android - 屏幕亮度搜索栏不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21448478/