我希望使用seekbar
以编程方式完全调暗屏幕亮度我正在使用此代码进行操作,但它并未完全调暗屏幕亮度。我想完全消除屏幕亮度
代码:
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 :(得分:1)
大多数&#34;夜间模式&#34; /&#34;保护你的眼睛&#34;一种应用程序使用View覆盖整个屏幕的服务。
然后,他们根据你想要的暗度设置这个视图的透明度/ alpha。背景颜色可以是不同的色调或黑色。看看这个问题,该问题展示了如何从服务Starting a View from a Service?
创建视图 希望它有所帮助。答案 1 :(得分:0)
使用对我有用的波纹管代码
WindowManager.LayoutParams layout = getWindow().getAttributes();
layout.screenBrightness = 1F;
getWindow().setAttributes(layout);