Живое обновление Яркость экрана с помощью SeekBar

Поэтому у меня есть код, который регулирует яркость системы, и я правильно реализовал строку поиска, но когда я настраиваю поисковую панель, яркость экрана не изменяется. Я просмотрел несколько других сообщений, и, похоже, решение состоит в создании класса Dummy, который быстро открывается и закрывается. Если я это сделаю, то тогда я почувствую, что будет тонна задержки, потому что экран будет постоянно обновляться по мере продвижения стрелки.

@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { ContentResolver cr = getContentResolver(); try{ int brightness = Settings.System.getInt(cr,Settings.System.SCREEN_BRIGHTNESS); Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness); WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = brightness / 255.0f; getWindow().setAttributes(lp); } catch (Settings.SettingNotFoundException a) { } } @Override public void onStartTrackingTouch(SeekBar seekBar) { //Toast.makeText(MainActivity.this, "Started Tracking Seekbar", Toast.LENGTH_SHORT).show(); } @Override public void onStopTrackingTouch(SeekBar seekBar) { } 

Еще одна проблема с обновлением заключается в том, что я запускаю этот регулятор яркости на экране, где есть предварительный просмотр камеры и убийство камеры каждый раз, когда загрузка фиктивного экрана занимает некоторое время и еще больше увеличивает задержку

Я видел этот пост, но я не мог понять, как его реализовать. Поскольку я не пользуюсь предпочтениями

У меня есть указатель в моих предпочтениях для обновления яркости экрана. Есть ли способ обновить пользовательский интерфейс, чтобы увидеть живое изменение?

Используйте мой следующий код, который он отлично работает:

В любом файле xml:

  <SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:background="?android:attr/selectableItemBackground" android:max="10" android:progressDrawable="@drawable/progress" android:scaleType="fitCenter" android:thumb="@drawable/thumb" /> 

Обратите внимание: принимать атрибуты так много, как вам нужно в seekbar.

В любом из ваших действий используйте следующий метод и вызовите это:

  private void setSeekbar() { seekBar = (SeekBar) findViewById(R.id.seekBar1); seekBar.setMax(255); float curBrightnessValue = 0; try { curBrightnessValue = android.provider.Settings.System.getInt( getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { e.printStackTrace(); } int screen_brightness = (int) curBrightnessValue; seekBar.setProgress(screen_brightness); seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { int progress = 0; @Override public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) { progress = progresValue; } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, progress); } }); } 

Я решил проблему со следующим кодом, который теперь работает по назначению!

 @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { // TODO Auto-generated method stub BackLightValue = (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); } 
Intereting Posts
Кластеризация маркеров карты при уменьшении и неавтоматизации при масштабировании Android: обновить данные предыдущего фрагмента при нажатии на кнопку IP-резерв в андроиде Объединение ImageView в одно растровое изображение (Android) AndEngine: использование PIXEL_TO_METER_RATIO Сохранение данных из WebView Обновление Xamarin приводит к тому, что «файл класса имеет неправильную версию 52.0, должна быть 50.0» ошибка OnCompletion не вызывается, когда я ожидаю, что он Оценить приложение на рынке Android в приложении Android – Как изменить значение счетчика без запуска setOnItemSelectedListener Как заполнить изображение внутри ImageView пользовательской левой и верхней координатами | Android Получение тела ответа в Retrofit2, но onResponse не вызвано Как получить смещение часовой пояс в GMT (как GMT + 7: 00) с устройства Android? Должен ли Java-финализатор действительно избегать также для управления жизненным циклом собственных одноранговых объектов? Двойная проверка правильности реализации шаблона владельца фрагмента +