Red de conocimiento informático - Material del sitio web - Cómo usar código para tomar capturas de pantalla en Android

Cómo usar código para tomar capturas de pantalla en Android

Respuesta: captura de pantalla del SDK de Android

Pasos del método: como sigue

Método 1:

(1) Utilice principalmente lo que el SDK proporciona el método View.getDrawingCache(). Ya hay muchos ejemplos en Internet. Primero cree un proyecto de Android, luego realice el diseño y dibuje un botón

El código de implementación de HelloAndroid.java es: packagecom.example.helloandroid;

Este código se usará al presionar el botón en la aplicación En este momento, se genera automáticamente un archivo de captura de pantalla png nombrado con una marca de tiempo en el directorio /sdcard/ del teléfono móvil.

Un problema con este tipo de captura de pantalla es que solo puede capturar una parte, como la parte del indicador de batería.

(2) Llame al comando "adb shell screencap -pfilepath" en el APK

Este comando lee el framebuffer del sistema y requiere permisos del sistema:

( 1

Agregue

al archivo AndroidManifest.xml (2). Modifique el APK a los permisos del sistema, coloque el APK en el código fuente para compilar,?

(3). La API del sistema implementa la captura de pantalla. Esta parte del código está oculta por el sistema y debe compilarse en el código fuente

1). p>LOCAL_CERTIFICATE := plataforma

2). Modifique el archivo AndroidManifest.xml y agregue

permisos

Método 2:

Android. ddmlib para captura de pantalla Programación local de Android (Programación nativa) Leer framebuffer

(1) Línea de comando La función de captura de pantalla del marco se implementa a través del framebuffer, así que primero introduzcamos el framebuffer.

Linux FrameBuffer esencialmente solo proporciona una abstracción de hardware para dispositivos gráficos. Desde la perspectiva de los desarrolladores, FrameBuffer es un caché de visualización. Escribir datos en un formato específico en el caché de visualización significa enviar contenido a la pantalla. Entonces FrameBuffer es una pizarra. Por ejemplo, para un FrameBuffer inicializado en color de 16 bits, los dos bytes en FrameBuffer representan un punto en la pantalla. De arriba a abajo, de izquierda a derecha, la posición de la pantalla y la dirección de memoria están en una relación lineal secuencial. El frame buffer tiene una dirección que está en la memoria. Al escribir datos continuamente en el búfer de cuadros, el controlador de pantalla recupera automáticamente los datos del búfer de cuadros y los muestra. Todos los gráficos comparten el mismo búfer de fotogramas en la memoria.

Método 3: Ideas de implementación de capturas de pantalla en Android

El sistema Android se basa en el kernel de Linux, por lo que también existe un dispositivo framebuffer si queremos tomar una captura de pantalla, siempre y cuando. podemos obtener los datos en el framebuffer, luego simplemente convertir los datos en imágenes. Los datos del framebuffer en Android se almacenan en el archivo /dev/graphics/fb0, por lo que solo necesitamos obtener los datos de este archivo para obtener el contenido. la pantalla actual.

Ahora nuestro código de prueba ejecuta la aplicación bajo prueba a través de RC (controlador remoto). Luego necesitamos acceder a los datos del framebuffer en el simulador o en la máquina real en la PC. Esto se puede hacer a través del comando ADB de Android. implementado.

Nota:

1. Debe agregar código a AndroidManifest.xml: android:sharedUserId="android.uid.system".

2. Dado que se llama a la API de @hide, utilice makefile al compilar. O compílelo agregando un archivo Jar en Eclipse.

3. Este código solo se ha utilizado en Android 4.0 y no se ha probado en Android 2.3.

Instrucciones complementarias:

Utilice TakeScreenShotService para tomar capturas de pantalla. Los teléfonos Android generalmente tienen la función de tomar capturas de pantalla del teléfono: en cualquier interfaz del teléfono (por supuesto, si el teléfono lo es). encendido e iluminado), presione el botón de combinación, la pantalla parpadea y luego hace clic. La foto de la captura de pantalla se guardará en la galería del teléfono actual.

Tengo una comprensión general de todo el proceso. Tomo capturas de pantalla a través de combinaciones de teclas en el código fuente de Android del teléfono móvil. Solo estoy familiarizado con el principio de captura de teclas y conozco la interfaz de la función de captura de pantalla que se llamará.