【问题标题】:screen brightness seekbar not working屏幕亮度搜索栏不起作用
【发布时间】:2014-01-30 05:25:10
【问题描述】:

在我的应用程序中,我添加了一个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);
      }
});

【问题讨论】:

    标签: android settings seekbar brightness screen-brightness


    【解决方案1】:

    我知道 Device 卡在零值

    所以我在 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);
    
      }
    }
    

    它现在起作用了,就像一个魅力。

    【讨论】:

      【解决方案2】:
              public void onProgressChanged(SeekBar seekBar, int progressValue, boolean fromUser) {
                  progress = progressValue;
                  if(progress <1 ) {
      
                      progress = 1;
      
                  }
                  android.provider.Settings.System.putInt(getActivity().getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
      
                  android.provider.Settings.System.putInt(getActivity().getContentResolver(),
                          android.provider.Settings.System.SCREEN_BRIGHTNESS,
                          progress);
      
      
                  WindowManager.LayoutParams layoutParams = window.getAttributes();
                  layoutParams.screenBrightness = progress / (float)255;
                  window.setAttributes(layoutParams);
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 2018-06-05
        • 2018-03-12
        • 1970-01-01
        相关资源
        最近更新 更多