2010-03-01 45 views
8

希望这应该是一个简单的问题。我试图将一系列小的位图复制到一个较大的位图中,将它们并排排列,没有任何间隙或像素重叠。例如,如果我有3个方形位图,我想将它们复制到一个细长的矩形中。我知道如何做相反的事情,即从较大的一个创建一个小的位图,但不是这样。什么是正确的命令?如何将较小的位图复制到较大的位图?

(如果任何人的好奇,我想这样做是为了能够重复使用一些代码,我写了动画处理与单个位图。)

谢谢!

回答

14

为大位图创建一个画布,然后用它来绘制小的位图。我很新的android,但我猜这是这样的:

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

啊是的,这是一个好主意。我会试验一下。 – 2010-03-02 11:13:29

+3

确实,这表现很好。谢谢! – 2010-03-02 11:35:09

相关问题