2014-01-30 2 views
2

В моем приложении я добавил 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); 
     } 
}); 

ответ

4

Я пришел, чтобы узнать, что устройство застревает на нулевое значение

Так что я дал условие on onProgresschanged as folows

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); 

    } 
} 

И теперь это работает, как шарм.

0
 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); 
     } 
Смежные вопросы