android - que - primitivas de dibujo línea arco circulo colores rellenos imágenes
¿Cómo puedo obtener el mapa de bits del lienzo que obtengo en OnDraw? (3)
Descubrí que Canvas tiene una función setBitmap, pero no una getBitmap. Es extraño, pero de todos modos, me permite crear yo mismo el mapa de bits y pasarlo al lienzo, conservando la referencia.
¿Cómo puedo crear el mapa de bits desde el lienzo de la vista personalizada.
Si bien no hay getBitmap()
función getBitmap()
para un lienzo, ya que está creando una vista personalizada, lo que puede hacer es escribir una función como esta dentro de su clase de vista.
public Bitmap get(){
return this.getDrawingCache();
}
Esto devuelve el mapa de bits de la vista, pero es importante que en todos los constructores agregue esto,
this.setDrawingCacheEnabled(true);
De getDrawingCache
contrario, getDrawingCache
devolverá null
No hay forma de extraer el Bitmap
de Bitmap
de un Canvas
. La única forma de acceder es pasarlo usted mismo al crear el lienzo como este new Canvas(myBitmap)
y conservar la referencia.
EDIT2: vea el golpe de comentarios de @Alex: el enfoque de pasar un Bitmap
de Bitmap
al Canvas
no parece funcionar para las versiones más recientes de Android.
EDITAR: Si no crea el Canvas
usted mismo, puede crear un Bitmap
tamaño de la pantalla (o el tamaño que necesite) y luego pasarlo al Canvas
en llamadas de onDraw
como esta: canvas.setBitmap(myBitmap)
.