Solución:
Un mapa de bits es una representación de una imagen de mapa de bits (algo así como java.awt.Image). Un Drawable es una abstracción de “algo que se puede dibujar”. Podría ser un mapa de bits (envuelto como un BitmapDrawable
), pero también podría ser un color sólido, una colección de otros objetos dibujables o cualquier cantidad de otras estructuras.
A la mayor parte del marco de la interfaz de usuario de Android le gusta trabajar con objetos dibujables, no con objetos de mapa de bits. Una Vista puede aceptar cualquier Dibujable como fondo. Un ImageView puede mostrar un Drawable en primer plano. Las imágenes almacenadas como recursos se cargan como objetos dibujables.
Drawable es algo que se puede dibujar. Por ejemplo, diseño, imagen vectorial (línea, círculo), fuente, imagen, etc.
Mapa de bits: es un tipo específico de dibujable que es una imagen, como: PNG, JPEG o algo así
El mapa de bits no es una imagen. El mapa de bits es un mapa de bits (nombre de la nota: mapa de bits). Y este mapa representa píxeles en los que puedes dibujar algo. Puede ser su propio mapa de bits personalizado (no una imagen), por ejemplo, cuadrado:
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
o puede crear un objeto de mapa de bits a partir de la imagen:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
Un mapa de bits es un contenedor de píxeles. Y Canvas se usa para dibujar algo en su mapa de bits (en píxeles de mapa de bits).
Todo lo relacionado con Drawable está bien descrito anteriormente.
TL; DR
Algunas personas escriben que dibujas en Canvas. No dibujas en Canvas. Dibuja en píxeles de mapa de bits con el método auxiliar Canvas.
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.RED) // now all bitmap pixels became red