2015-09-21 4 views
1

я бегу Runnable, который должен постепенно изменить яркостьКак изменить яркость?

private Runnable runnable = new Runnable(){ 

     @Override 
     public void run(){ 
      if(intensity < 1){ intensity += intensityGrow; } 
      if(intensity > 1){ intensity = 1f; } 
      Log.e("intensity", intensity + "/grow "+intensityGrow); 

      android.provider.Settings.System.putInt(
       getContentResolver(), 

       android.provider.Settings.System.SCREEN_BRIGHTNESS,(int)(255*intensity) 
      ); 
      AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 

      am.setStreamVolume(
       AudioManager.STREAM_ALARM, (int) (am.getStreamMaxVolume(AudioManager.STREAM_ALARM) * intensity), 0 
      ); 
      if(intensity < 1){ 
       Log.e("intensity", "continue"); 

       handler.postDelayed(runnable, 1000); 
      } 

     } 
    }; 

Я также попытался использовать

 WindowManager.LayoutParams lp = getWindow().getAttributes(); 
     lp.screenBrightness = intensity; 
     getWindow().setAttributes(lp); 

Существует в манифесте <uses-permission android:name="android.permission.WRITE_SETTINGS"/> Также без результата.

+0

возможно дубликат из [Изменить системную яркость программно] (http://stackoverflow.com/questions/18312609/change-the-system-br ightness-программные средства) –

ответ

0

Чтобы сделать эту работу, то сначала nessesarry установить режим яркости для ручной

Settings.System.putInt(
         getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL 
        ); 

Затем измените яркость, используя оба метода

android.provider.Settings.System.putInt(
       getContentResolver(), 

       android.provider.Settings.System.SCREEN_BRIGHTNESS, (int) (255 * intensity) 
      ); 
      WindowManager.LayoutParams lp = getWindow().getAttributes(); 
      lp.screenBrightness = intensity; 
      getWindow().setAttributes(lp); 
0

попробовать это,

new Thread() { 
    public void run() { 
     for (int i = initial; i < target; i++) { 
      final int bright = i; 
      handle.post(new Runnable() { 
       public void run() { 
        float currentBright = bright/100f; 
        window.getAttributes().screenBrightness = currentBright; 
        window.setAttributes(window.getAttributes()); 
       }); 
      } 
      try { 
       sleep(step); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
}.start(); 
Смежные вопросы