Nunca hacen la opción número 1 de la manera que lo hace. En lugar de crear un mapa de bits de un dibujante cada vez que desee dibujarlo, cree un mapa de bits en primer lugar. Es decir, no cree un Drawable si va a dibujar un mapa de bits. Cree un mapa de bits como este:
mBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.myImage);
mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true);
Y esto es algo que hace solo una vez. Después de eso, simplemente dibuja como lo haces (canvas.drawbitmap()).
En cuanto a la opción número 2, lo está haciendo correctamente.
Ahora, hay algunas diferencias. La opción 1 es más rápida de dibujar y generalmente es útil para imágenes de fondo. Hay un cambio significativo en FPS dependiendo de si dibuja un mapa de bits o drawable. Los mapas de bits son más rápidos.
La opción 2 es el camino a seguir si necesita cosas como escalar, mover y otros tipos de manipulaciones de la imagen. No tan rápido, pero no hay otra opción si quieres hacer cualquiera de esas cosas que acabo de mencionar.
Espero que esto ayude!
Gracias por su respuesta, esto tiene sentido :) – Sven