2010-03-01 10 views
8

J'espère que cela devrait être une question facile. J'essaie de copier une série de petites bitmaps dans une plus grande, en les arrangeant côte à côte sans aucun espace ou chevauchement dans leurs pixels. Par exemple, si j'ai 3 bitmaps carrés, j'aimerais les copier dans un rectangle long et fin. Je sais comment faire le contraire, à savoir créer un petit bitmap sur un plus grand, mais pas de cette façon. Quelle est la bonne commande?Comment copier un plus petit bitmap dans un plus grand?

(Si quelqu'un est curieux, je veux le faire pour être en mesure de réutiliser un code que j'ai écrit pour la manipulation de l'animation avec un seul bitmap.)

Merci!

Répondre

14

Créez un canevas pour le grand bitmap, puis utilisez-le pour dessiner vos petites bitmaps. Je suis assez nouveau pour Android, mais je devine que c'est quelque chose comme ça:

Bitmap makeBigBitmap(Bitmap srcBmps[]) { 
    Bitmap wideBmp; 
    Canvas wideBmpCanvas; 
    Rect src, dest; 

    // assume all of the src bitmaps are the same height & width 
    wideBmp = Bitmap.createBitmap(srcBmps[0].getWidth() * srcBmps.length, 
     srcBmps[0].getHeight(), srcBitmaps[0].getConfig()); 

    wideBmpCanvas = new Canvas(wideBmp); 

    for (int i = 0; i < srcBmps.length; i++) { 
     src = new Rect(0, 0, srcBmps[i].getWidth(), srcBmps[i].getHeight()); 
     dest = new Rect(src); 
     dest.offset(i * srcBmps[i].getWidth(), 0); 

     wideBmpCanvas.drawBitmap(srcBmps[i], src, dest, null); 
    } 

    return wideBmp; 
} 
+2

Ah oui c'est une bonne idée. Je vais expérimenter avec ça. –

+3

En effet, cela a bien fonctionné. Merci! –

Questions connexes