2016-12-14 2 views
0

Я хочу, чтобы полностью затемнить свою яркость экрана программно с помощью seekbar Я использую этот код, чтобы сделать операцию, но она не затемнит fully.I яркости экрана хочет удалить яркость экрана полностьюКак затемнить яркость экрана полностью

код:

public class Night extends AppCompatActivity { 

private SeekBar brightbar; 
private int brightness; 
private ContentResolver contentResolver; 
private android.view.Window window; 
TextView txtPerc; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_night); 

    brightbar=(SeekBar)findViewById(R.id.brightbar); 
    txtPerc=(TextView)findViewById(R.id.txtPercentage); 
    contentResolver=getContentResolver(); 
    window=getWindow(); 
    brightbar.setMax(255); 
    brightbar.setKeyProgressIncrement(1); 

    try{ 
     brightness= Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS); 
    }catch (Exception e) { 
     e.printStackTrace(); 
    } 

    brightbar.setProgress(brightness); 

    brightbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 

      if (progress<=5) 
      { 
       brightness=5; 
      }else { 
       brightness=progress; 
      } 

      float perc=(brightness/(float)255)*100; 
      txtPerc.setText((int)perc + "%"); 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 

      Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS,brightness); 
      WindowManager.LayoutParams layoutpars=window.getAttributes(); 

      layoutpars.screenBrightness=brightness/(float)255; 
      window.setAttributes(layoutpars); 
     } 
    }); 



} 

}

может кто-нибудь предложить мне, как я могу это сделать.

ответ

0

использование ниже код работает для меня

WindowManager.LayoutParams layout = getWindow().getAttributes(); 
    layout.screenBrightness = 1F; 
    getWindow().setAttributes(layout); 
+0

Я просто пробовал это, но он уменьшал яркость экрана до некоторой степени, только я хочу понизить яркость экрана полностью – Adarsh

1

наиболее «ночной режим»/«защитить ваши глаза» вид приложений использует сервис с видом охватывающий весь экран.

Затем они устанавливают прозрачность/альфа этого вида в соответствии с тем, как вы темнеете. цвет фона может быть разных оттенков или черного.

взглянуть на этот вопрос, который показывает, как создать вид из службы Starting a View from a Service?

надеюсь, что это помогает.

Смежные вопросы