1. SeekBarDemo.javajava
public class SeekBarDemo extends AppCompatActivity { private SeekBar seekBar = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_seek_bar_demo); this.seekBar = (SeekBar)findViewById(R.id.seekbar); //取得seekBar this.seekBar.setMax(100); //之後計算的時候除以100 this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListenerImpl()); } private class OnSeekBarChangeListenerImpl implements SeekBar.OnSeekBarChangeListener { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { //正在拖動 } @Override public void onStartTrackingTouch(SeekBar seekBar) { //開始拖動 } @Override public void onStopTrackingTouch(SeekBar seekBar) { //中止拖動 SeekBarDemo.this.setScreenBrightness((float)seekBar.getProgress()/100); //計算出當前值 } } private void setScreenBrightness(float num) { WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); //取得windows屬性 layoutParams.screenBrightness = num; //num已經除以100 super.getWindow().setAttributes(layoutParams); //0~1之間 } }
2. activity_seek_bar_demo.xmlandroid
<SeekBar android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/seekbar"/> <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/img" android:src="@drawable/dog1" android:layout_below="@+id/seekbar" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="55dp" />
因爲亮度只能在0~1之間的數字表示,因此在每次拖動的時候都要將當前的數字除以100,以後將此內容設置到window的screenBrightness屬性中。
windows