如何将较小的位图复制到较大的位图?

Ste*_*ley 8 android canvas bitmap

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

(如果有人好奇,我想这样做是为了能够重用我为处理带有单个位图的动画而编写的代码.)

谢谢!

Set*_*eth 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;
}
Run Code Online (Sandbox Code Playgroud)

  • 啊,这是个好主意.我会试验一下. (2认同)