Я должен был решить нечто подобное не так давно, и вы почти у цели. Однако вы должны использовать объекты Rect для смещения, где вы каждый раз рисуете свое растровое изображение. Предполагая, что вы скопировали все свои изображения в массив растровых изображений [], и вы создали свое растровое изображение и холст, как вы делали выше, используйте следующее:
Rect srcRect;
Rect dstRect;
for (int i = 0; i < images.length; i++){
srcRect = new Rect(0, 0, images[i].getWidth(), images[i].getHeight());
dstRect = new Rect(srcRect);
if (i != 0){
dstRect.offset(images[i-1].getWidht(), 0)
}
canvas.drawBitmap(images[i], srcRect, dstRect, null);
}
Это скопирует их всех в одну строку. Это не так сложно адаптировать, чтобы скопировать 4 изображения в квадрат или что-то подобное, используя два цикла for.