La diferencia y conversión entre el mapa de bits de Android y Drawable
drawable: como objeto gráfico común en Android, puede cargar imágenes en formatos comunes, como GIF, PNG, JPG. Por supuesto, también es compatible con BMP. objetos, como degradados y gráficos.
Los mapas de bits se pueden dibujar. Un dibujable no es necesariamente un mapa de bits. Así como todos los pulgares son dedos, no todos los dedos son pulgares.
Dibujable en mapa de bits. Un dibujable no es necesariamente un mapa de bits. Así como un pulgar es un dedo, no todos los dedos son pulgares.
Regulaciones API:Regulaciones API:
Aunque normalmente son invisibles para las aplicaciones, los objetos dibujables pueden tomar muchas formas:Aunque generalmente son invisibles para las aplicaciones, los objetos dibujables pueden tomar muchas formas:
Mapa de bits: imagen dibujable simplificada, imagen png o JPEG. Mapa de bits: una imagen PNG o JPEG dibujable simplificada.
nine Patch: Una extensión del formato PNG que le permite especificar información sobre cómo estirarlo y colocar cosas dentro de él.
Forma: Contiene comandos de dibujo simples en lugar de mapas de bits sin formato, lo que permite un mejor cambio de tamaño en algunos casos.
Capas: un elemento de diseño compuesto que dibuja múltiples elementos de diseño subyacentes uno encima del otro.
Estados: un elemento de diseño compuesto que selecciona uno de un conjunto de elementos de diseño según el estado.
Nivel: Un extraíble compuesto que se elige entre un conjunto de extraíbles en función de su nivel.
Escala: un elemento de diseño compuesto con un único elemento de diseño secundario cuyo tamaño general se modifica según el nivel actual.
Resumen:
Los elementos de contraste muestran claridad, ocupan memoria, admiten escalado, admiten ajuste de tono y diferencia de color, admiten rotación, admiten velocidad de dibujo de color transparente, admiten operaciones de píxeles.
Los mapas de bits son del mismo tamaño, sí, sí, sí, sí, sí, sí, sí, sí.
Dibujable también es muy pequeño. Sí, no, sí, sí, rápido no.
Drawable es superior al mapa de bits en términos de uso de memoria y velocidad de dibujo.
//Convertir mapa de bits a dibujable
Mapa de bits mapa de bits = nuevo mapa de bits(...);
Dibujable dibujable = nuevo mapa de bitsDrawable (mapa de bits);
//Convertir Drawable a mapa de bits
drawable d = lista de imágenes. get(0);
Bitmap bitmap = ((BitmapDrawable)d). get bitmap();
//1. Drawable→Bitmap
Mapa de bits estático público Tobitmap dibujable (Drawable Drawable) {
Mapa de bits bitmap =bitmap
. Crear mapa de bits (
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.Opacity? Figura de bits. Configuración ARGB_8888
: Mapa de bits.
Configurar RGB_565);
Lienzo de lienzo = nuevo lienzo (mapa de bits);
//canvas.setBitmap (mapa de bits);
dibujar límites establecidos (0). , 0, drawable.getIntrinsicWidth(), drawable.getintrinsicheight());
drawable.draw(canvas);
Devolver mapa de bits;
} p>
//2. Obtenga el mapa de bits del recurso.
recursos RES = obtener recursos();
mapa de bits BMP = bitmapfactory.decode recurso(RES, r.drawable.pic);
//3. Mapa de bits → Byte【】
Byte privado【】Mapa de bits 2 bytes (Mapa de bits BM) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress( Bitmap.CompressFormat.PNG, 100;
return baos.tobytearray();
}
//4, bytes 【】→Bitmap
Número de bytes de mapa de bits especializado Bimap (byte【】b){
if (b. length!=0){
Devuelve bitmapfactory.decodebytearray(b, 0, b. longitud);
}
En caso contrario {
Devolver nulo
}
}