Aplicaciones Android

RenderEffect-Reducir la saturación-Esculpir Android

En el momento de escribir este artículo, en marzo de 2021, la olfato previa auténtico para desarrolladores de Android 12 llegó recientemente. Si hay muchos rumores, Android 12 tendrá una modernización del sistema de diseño citación Material NEXT. Aunque los detalles de lo que esto en realidad significa son vagos, puede tener similitudes con otras plataformas móviles. Un patrón de interfaz de usufructuario popular en iOS es desenfocar el fondo detrás del componente de interfaz de usufructuario en primer plano. Por ejemplo, un cuadro de diálogo.Durante mucho tiempo, esto se puede conseguir dibujando en Android ViewA un Bitmap Luego use RenderScript u OpenGL para difuminarlo. Pero existen posibles problemas de rendimiento y no todo se realiza de forma coherente en toda la plataforma. Oportuno a la aparición de nuevas API en Android 12, esta situación parece estar a punto de cambiar: RenderEffect

En el artículo inicial, estudiamos cómo aplicar el impresión de desenfoque a View Escalafón.Sin requisa, este no es el único impresión que podemos conseguir. RenderEffect -hay mas. En este artículo, exploraremos otra reducción de la saturación del impresión. Pero más allá de eso, además estudiaremos cómo aplicar múltiples mercadería a la vez.

Desaturación

En marzo de 2013, publiqué un artículo que mostraba cómo usar ColorMatrixColorFilter. Estos son los días previos a nuestra API de sombreado incorporada. View. Estos solo llegaron en las piruletas anunciadas en 2014. ColorMatrixColorFilter() Sigue siendo una útil poderosa para cambiar dinámicamente los colores de imágenes y rudimentos gráficos.

RenderEffect Creación de soporte RenderEffectColchoneta de ColorFilter Nos permite aplicar estos mercadería como parte del proceso de renderizado acelerado por hardware.

LEER  Genéricos en Kotlin. ¿Qué es? | Por Saravana Thiyagaraj | Maderaps | Septiembre de 2021

Para desaturar la imagen, primero creamos un ColourMatrix Objeto y ajuste el nivel de saturación.Lo envolvemos en ColorMatricColorFilter Puede estar de moda como RenderEffect Método de industria:

Lo aplicamos exactamente de la misma forma que el impresión de desenfoque:

Ahora, podemos ajustar la saturación de la imagen. La saturación aquí es 1, con información de color completa:

Esto es 0: se eliminan todos los colores, dejando una imagen en escalera de grises:

Sujeción

Como mencioné en el artículo inicial, aunque la API es un poco más completa, podemos obtener una decano funcionalidad. Un buen ejemplo es vincular múltiples mercadería.Nuestro método creador de mercadería de desenfoque y desaturación produce RenderEffect Ejemplo. Sin requisa, estos tienen mercadería muy diferentes.

Podemos encadenar múltiples RenderEffects juntos:

Esto createChainEffect() El método en sí mismo volverá RenderEffect Instancia, podemos aplicarlo a View Exactamente lo mismo que hicimos ayer.Ahora, podemos usar el desenfoque y la desaturación como uno RenderEffect:

Cerca de mencionar que el orden de los rudimentos de la prisión puede ser importante. En este caso, la canalización realizará primero la desaturación y luego el desenfoque. Si revertimos estos resultados, los resultados serán sutilmente diferentes. Dependiendo del impresión exacto constante, estas diferencias pueden volverse más pronunciadas.

Sin requisa, la prisión RenderEffect Se puede aplicar a View Estructura jerárquica, como hicimos para el impresión de desenfoque:

en conclusión

Espero que a partir de estos sencillos ejemplos de implementación, podamos ver claramente lo que RenderEffect puede conseguir. Adicionalmente, la capacidad de vincularlos requiere una cantidad muy pequeña de trabajo adicional para aumentar significativamente la funcionalidad. De hecho, una tilde extra de código.

Hemos introducido algunos conocimientos básicos que podemos utilizar. RenderEffect. Sospecho que volveré a examinar esta pregunta y ofreceré otros ejemplos interesantes en el futuro. Si desea verlos, por valimiento deje un comentario o envíeme un correo electrónico para contactarme, detalles de contacto aquí.

Copyright © 2021 Estilo de Android. reservados todos los derechos.

LEER  Teléfono Móvil Resistente F150 B2021,Batería 8000 mAh 6GB+64GB, Octa Core Android 10 Impermeable IP68 Rugged Smartphone, 5.86''HD Cuatro Cámaras Dual SIM Antigolpes Robusto Movil Libre Barato Amarillo

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba