(Original) Capturar Ver imágenes a través de DrawingCache

 

En el desarrollo de Android, a veces es necesario interceptar la pantalla, esta vez habrá un problema. ¿Qué sucede si no necesito toda la pantalla sino solo un área?

 

Al principio, pensé en capturar primero toda la pantalla y luego recortarla. Pero fue demasiado problemático, hasta que descubrí DrawingCache. Compartamos cómo usar DrawingCache para capturar parte del área de la pantalla.

 

Todos los espacios de Android heredan la clase View, y la clase View realmente proporciona la función de interceptar su propio mapa de bits. Podemos lograr la función de interceptar parte de la pantalla obteniendo el mapa de bits de View. Existen principalmente los siguientes métodos, los presentaré uno por uno

 

void setDrawingCacheEnabled (bandera booleana), // Abre la caché de imágenes, llama internamente al método buildDrawingCache

Bitmap getDrawingCache (boolean autoScale), // Obtener imágenes en caché

void buildDrawingCache (boolean autoScale), // Reconstruye el caché de imágenes, llama internamente a destroyDrawingCache para destruir el caché de imágenes original

void destroyDrawingCache (), // Destruye el caché de imágenes

 

Hay dos formas de utilizar

El primero

view.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);

El principio se explica de la siguiente manera:

setDrawingCacheEnabled (true) llamadas internas método buildDrawingCache () de la caché de fragmentos reconstruidos de FIG

Debido a que el mapa de bits obtenido por DrawingCache se reciclará después de deshabilitarlo, se requiere una copia de seguridad a través de Bitmap.createBitmap ()

Obtener el caché ocupará una cierta cantidad de memoria, por lo que es necesario limpiarlo al final. setDrawingCacheEnabled (false) llama internamente al método destroyDrawingCache () para limpiar

El segundo

view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.destroyDrawingCache();

Este se puede entender como el código core del anterior. Se puede ver que los pasos para obtener el caché de la imagen Ver son principalmente los siguientes

Construir-obtener y caché-destruir

 

¡Finalmente necesito prestar atención! ! !

La vista no ha inicializado su propio ancho y alto en el método onCreate,

Entonces, el método getDrawingCache () devuelve vacío.

Es decir, aquí no se puede obtener la imagen del control

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/Android_xiong_st/article/details/82978141
Recomendado
Clasificación