Generalidades

Cómo capturar capturas de pantalla en la aplicación en Android | Autor Siva Ganesh Kantamani | Agosto de 2021

echar un vistazo getDrawingCache and Implementación de API PixelCopy

Siva Ganesh Kantamani
teléfono móvil
Foto de Mika Baumeister en Unsplash

En este artículo, aprenderemos sobre un método de captura de pantalla ampliamente utilizado y resolveremos su problema en tiempo real. Luego, explore una solución simple, usando lienzo para tomar capturas de pantalla basadas en vistas.

Además de ofrecer mejores servicios, las capturas de pantalla también se utilizan para muchos propósitos, como compartir sus preguntas en la pantalla cuando hay aplicaciones de tecnología educativa involucradas o enviar una lista de artículos de compra preseleccionados desde una aplicación de comercio electrónico a su familia.

Recientemente comencé a buscar una solución perfecta para capturar capturas de pantalla en la aplicación. He encontrado más de unas pocas soluciones, pero la mayoría de ellas no funcionan en dispositivos con diferentes versiones de Android o sistemas operativos personalizados. Pero finalmente encontré una solución, que no implica métodos obsoletos y funciona perfectamente con la API de Android Canvas.

Sin más preámbulos, comencemos:

Tomando una captura de pantalla de la vista getDrawingCache

Básicamente, es una función de extensión en la clase de vista.Primero, creamos un archivo con un nombre único por fecha y luego pasamos getDrawingCache. Una vez que tenemos el mapa de bits y el archivo, usamos saveFile La función de extensión que creé para guardar archivos.echar un vistazo saveFile Función:

Guarde el mapa de bits en el sistema de archivos

Esto funciona perfectamente, pero tiene dos desventajas:

  1. No funciona en dispositivos con Android 8 y superior.
  2. Si el almacenamiento en caché está deshabilitado en la vista, el tipo de retorno será nulo y los casos de uso en tiempo real pueden deshabilitar el almacenamiento en caché en la vista web.
Captura de pantalla de la vista a través de la API PixelCopy

Primero, creamos un mapa de bits vacío con el tamaño de la vista, luego colocamos la vista en la pantalla y comenzamos a copiar píxeles en el mapa de bits. Aquí vamos a pasar una función de Kotlin que toma un mapa de bits como parámetro de entrada. Esta función de Kotlin se utiliza para guardar el mapa de bits en un archivo. Echar un vistazo:

La API PixelCopy hace un trabajo bastante bueno, pero descubrí que no funciona en muchos casos. Entonces necesitaba otra solución estándar, lo que me llevó a la siguiente solución.

Primero, necesitamos crear un mapa de bits basado en el tamaño de la vista. Entonces, la lógica aquí es bastante simple, usamos lienzo y funciones de dibujo en la vista para crear un mapa de bits. Eche un vistazo al código:

Tomar una captura de pantalla de view va canvas

En lo que a mí respecta, esto funciona como un encanto, sin ningún sistema operativo o restricciones basadas en vistas. Si encuentra algún problema, agréguelo en los comentarios para que podamos mejorar la solución juntos.

LEER  Android Auto Beta ahora está disponible para todos, pero ten cuidado

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