Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将较小的位图复制到较大的位图?_Android_Canvas_Bitmap - Fatal编程技术网

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

Android 如何将较小的位图复制到较大的位图?,android,canvas,bitmap,Android,Canvas,Bitmap,希望这应该是一个简单的问题。我试图将一系列小位图复制到一个较大的位图中,将它们并排排列,像素中没有任何间隙或重叠。例如,如果我有3个方形位图,我想将它们复制到一个细长的矩形中。我知道如何做相反的事情,即用一个较大的位图创建一个小位图,但不是这样。什么是正确的命令 (如果有人好奇的话,我想这样做是为了能够重用我编写的用于处理单个位图动画的代码。) 谢谢 为大位图创建画布,然后使用该画布绘制小位图。我对安卓相当陌生,但我猜它是这样的: Bitmap makeBigBitmap(Bitmap srcB

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

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


谢谢

为大位图创建画布,然后使用该画布绘制小位图。我对安卓相当陌生,但我猜它是这样的:

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;
}
位图makeBigBitmap(位图srcBmps[]){
位图宽度bmp;
帆布宽bmpcanvas;
Rect src,dest;
//假设所有src位图的高度和宽度相同
wideBmp=Bitmap.createBitmap(srcBmps[0].getWidth()*srcBmps.length,
srcBmps[0].getHeight(),srcBitmaps[0].getConfig();
wideBmpCanvas=新画布(wideBmp);
对于(int i=0;i