android - 屏幕亮度搜索栏不工作

标签 android settings seekbar brightness screen-brightness

在我的应用程序中,我添加了一个 SeekBar 来控制屏幕亮度。效果还不错。 我在 Oncreate() 中获取设备的屏幕亮度,并设置 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);
      }
});

最佳答案

我发现设备卡在零值

所以我给了 onProgresschanged 一个条件,如下

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/

相关文章:

ios - swift Xcode 读取应用程序设置

Android:为除应用程序音频流之外的所有通知设置 "do not disturb"(setInterruptionFilter)

linux - 如何阻止 Pop_OS 20.10 在启动时默认为故障显示设置?

Android 多个垂直seekBar

Android SeekBar setOnSeekBarChangeListener

java - 使用事件总线更新接口(interface)的缺点?

android - 在 Redmi 设备上启用 "Show on Lock Screen "权限

java - Android Manifest 标签不匹配

java - 是否可以在资源(AKA int)上 setTag() ?

android - Seekbar在媒体播放器实现中没有进展