Android 2.2: Ajuste del brillo de la pantalla

public void SetBright(float value) { Window mywindow = getWindow(); WindowManager.LayoutParams lp = mywindow.getAttributes(); lp.screenBrightness = value; mywindow.setAttributes(lp); } 

Quiero ajustar el brillo de la pantalla. Pero nada ocurre cuando intento usar este método. ¿Podría ser porque uso el indicador KEEP_SCREEN_ON?

Asegúrese de que "Brillo automático" no está activado antes de ajustar el brillo de la pantalla. Puede hacerlo manualmente en Configuración> Mostrar o usar código si está usando Android 2.2 o un SDK superior.

Algo como:

 int brightnessMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE); if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.screenBrightness = 0.5F; // set 50% brightness getWindow().setAttributes(layoutParams); 

Asegúrese de que el valor esté entre 0.0F y 1.0F. Un valor de -1.0F utiliza el brillo predeterminado almacenado en las preferencias. Según la documentación "Un valor inferior a 0, el valor por defecto significa utilizar el brillo preferido de la pantalla. 0 a 1 ajusta el brillo de oscuro a pleno luminoso".

El valor de screenBrightness entre 0.0f y 1.0f , tal vez su valor es demasiado grande. Utilizo el indicador WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON y también puedo ajustar el brillo de la pantalla

Ajuste el brillo mediante una barra de búsqueda:

public class AndroidBrightnessActivity extends Actividad {

 private SeekBar brightbar; private int brightness; private ContentResolver cResolver; private Window window; TextView txtPerc; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); brightbar = (SeekBar) findViewById(R.id.brightbar); txtPerc = (TextView) findViewById(R.id.txtPercentage); cResolver = getContentResolver(); window = getWindow(); brightbar.setMax(255); brightbar.setKeyProgressIncrement(1); try { brightness = System.getInt(cResolver, System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { Log.e("Error", "Cannot access system brightness"); e.printStackTrace(); } brightbar.setProgress(brightness); brightbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { System.putInt(cResolver,System.SCREEN_BRIGHTNESS,brightness); LayoutParams layoutpars = window.getAttributes(); layoutpars.screenBrightness = brightness / (float)255; window.setAttributes(layoutpars); } public void onStartTrackingTouch(SeekBar seekBar) { //Nothing handled here } public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if(progress<=20) { brightness=20; } else { brightness = progress; } float perc = (brightness /(float)255)*100; txtPerc.setText((int)perc +" %"); } }); } 

}

Codificación feliz

  • Android: Cómo manejar el tamaño de las imágenes para varias pantallas
  • Android, ¿Cómo puedo hacer que AVD sea más pequeño?
  • Android: ¿Ajusta la pantalla cuando aparece el teclado?
  • Android: deshabilita las rotaciones de 90 °, pero permite rotaciones de 180 °
  • Juego de Android lista de cajones de navegación para abrir la mitad exacta de la pantalla para todas las pantallas del dispositivo
  • Diferencia entre SCREEN_ORIENTATION_USER y SCREEN_ORIENTATION_SENSOR
  • Filtro de pantalla de brillo
  • Cambio del brillo de la pantalla mediante programación (como con el widget de energía)
  • ¿Cómo compartir programaticamente la pantalla del dispositivo Android con otra vía wifi? (No captura de pantalla)
  • Método correcto para setKeepScreenOn / FLAG_KEEP_SCREEN_ON
  • ¿Cómo leer el valor real, actual del brillo / dim de la pantalla para Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.