Cambiar el brillo de la pantalla mediante programación – Android | de Pragnesh Ghoda | enero 2023

Cómo cambiar mediante programación el brillo en la pantalla de la aplicación de Android y reflejarlo a nivel del sistemaCrédito de la imagen: Configuración rápida de Pixel 4a (Joe Maring) Esto se practicaba comúnmente al aumentar el brillo del dispositivo al escanear o mostrar códigos QR para el pago. Me he encontrado con varias aplicaciones que siguen esta práctica, la mayoría de ellas son aplicaciones de billetera o bancarias. Ahora hay dos maneras de lograr esto. Con y sin permiso. Comencemos con lo simple. La forma más fácil es simplemente ajustar el brillo de la pantalla sin afectar el brillo del sistema. Puede configurar el atributo screenBrightness de la ventana como un diseño específico: WindowManager. = actividad?.ventana?.attributeslayout?.screenBrightness = 0.9factividad?.ventana?.attributes = diseño El atributo screenBrightness es un valor de punto flotante en el rango de 0 a 1, donde 0.0 representa 0% de brillo, 0.5 representa 50% de brillo, y 1,0 es 100% de brillo.

Tenga en cuenta que esto no afecta el brillo de todo el sistema, solo esa ventana específica. Sin embargo, en la mayoría de los casos y para la mayoría de los usos, eso es probablemente todo lo que necesita. En particular, tiene la ventaja de no requerir privilegios elevados que serían necesarios para cambiar la configuración de un sistema global.

Crédito de la imagen: Material Design El primer paso sería agregar el permiso WRITE_SETTINGS en el manifiesto de Android para permitir escribir configuraciones del sistema. ) { Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);intent.setData(Uri .parse(«package:» + getPackageName()));startActivity(intent);}} Ahora, cuando ejecute su aplicación, se le preguntará para ingresar al usuario para pedir permiso a la aplicación para cambiar la configuración del sistema de la aplicación. Si su aplicación está firmada con certificados del sistema, su aplicación tiene este permiso de forma predeterminada.En el siguiente paso, configura el brillo de la aplicación. Esta vez simplemente pasamos el valor al sistema y dejamos que el sistema maneje el brillo del dispositivo en lugar de configurarlo manualmente. El valor debe estar en el rango de 0-255. Entonces, si tiene un control deslizante con un rango (0-max), puede normalizar el valor en el rango (0-255) private float normalize (float x, float inMin, float inMax, float outMin, float outMax) { float outRange = outMax – outMin;float inRange = inMax – inMin;return (x – inMin) *outRange / inRange + outMin;} Finalmente, ahora puede cambiar el rango de valores del control deslizante (0-100%) a 0-255 como este brillo flotante = normalizar (progreso, 0, 100, 0.0f, 255.0f); esto permitiría que su aplicación pase el brillo al sistema Android y aumentará el brillo de su dispositivo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.