在我的应用程序中,我添加了一个控制屏幕亮度的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/

10-09 09:44