2017-03-29 80 views
0

我有水平方向和多個ImageView的線性佈局。如何使用這些圖像製作單個位圖?如何合併多個圖像使

像這樣:

enter image description here

如果有超過6個圖像,然後剩餘的圖像去下一行。 這一個是工作水平:

 Bitmap[] parts = new Bitmap[4]; 
     Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); 
     Canvas canvas = new Canvas(result); 
     Paint paint = new Paint(); 
     for (int i = 0; i < parts.length; i++) { 
      canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i/2), paint); 
     } 
+1

作業:展開代碼以處理下一行。 – greenapps

回答

0

你應該LienarLayout以下方法:

public static Bitmap loadBitmapFromView(View v) { 
Bitmap b = Bitmap.createBitmap(v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);     
Canvas c = new Canvas(b); 
v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()); 
v.draw(c); 
return b; 
} 

傳遞你LienarLayout對象在上述方法中採取Bitmap從View。

+0

但LL具有水平方向。如果線性佈局中的圖像數量超過6個,則保留至下一行。 –

+0

所以你需要把每一行的位圖,然後組合,然後你做單個位圖。 –