Quiero tener la luz de fondo en mi teléfono cambiar de forma dinámica, intensidad, incluso convertir completamente apagado durante completamente pantallas en negro y tal. Cómo es posible esto? Es un nexus 5 corriendo cataclismo 5.0.1 con el kernel elementalx.
Respuesta
¿Demasiados anuncios?Usted podría considerar la posibilidad de capturar una imagen de la pantalla, a continuación, el procesamiento de mapa de bits para el brillo de cada píxel.
El Android Captura de pantalla de la Biblioteca (ASL) debe darle información sobre cómo hacer una captura de pantalla. Este link en StackOverflow habla acerca de cómo hacerlo, pero el vínculo principal parece ser la de la ASL.
Para calcular la luminosidad de los píxeles, puede hacerlo en cualquiera de los RGB o HSV espacios de color. Creo que me gustaría hacerlo en VHS, ya que el Valor (la V en VHS) es el brillo del color del píxel. Usted también podría hacerlo con los tres parámetros de color en el espacio de color RGB, pero entonces usted está trabajando con proporciones y que vamos a tener que realizar más cálculos por ti mismo. Con el VHS que tú (creo), simplemente se suman todos los Valores y dividir por el número de píxeles. (Posiblemente usted me tire en un escalar si un cambio lineal en el brillo no se ve muy bien. Por ejemplo: Tienes un lento cambio de luz de fondo cuando usted tiene gráficos brillantes, sino que se mueven más rápidamente hacia sin luz de fondo cuando tienen la gráfica se aproxima negro).
Con que funciona, es posible que desee considerar la posibilidad de hacer el trabajo el uso de Android RenderScript. De procesamiento de gráficos es lo que RenderScript fue diseñado para, y se encarga de paralelismo para usted. Usted podría utilizar toda la CPU / CPU / DSP núcleos que tiene disponible.
Por último, es posible que desee seguir esta por llegar complicado y el uso de la luz del dispositivo, la información de los sensores. Después de todo, si vas a cambiar de forma dinámica la luz de fondo basado en lo que está en la pantalla, usted podría considerar también el grado de luminosidad de todo el dispositivo. :-)
Espero que ayude!
Edit: espero que estaban buscando una programación de la respuesta. Yo realmente no había pensado en el hecho de que esta pregunta fue publicado para los Entusiastas de Android en lugar de Stack Overflow. :-)