0
我在RelativeLayout
內有兩個ImageView
s。其中一個ImageView
可拖動並可在其他ImageView
上擴展。這一切都工作正常,除非我試圖將這些ImageView
s導出到位圖並將其添加到畫布。將多個位圖導出爲一張圖片
我不能找出如何計算的規模和拖動視圖/位圖B.
ImageView
甲用作背景的位置。
ImageView
B爲可拖動和可擴展的上ImageView
A.
這裏的頂部是一個代碼示例
public static Bitmap MergeBitmaps(View v, View ViewA, Bitmap bitmapA, View viewB, Bitmap bitmapB) {
Bitmap b = Bitmap.createBitmap(
bitmapA.getWidth(), bitmapA.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
float scaleFactor = (float) ViewA.getHeight()/(float) bitmapA.getHeight();
float scaleFactorWidth = (float) ViewA.getWidth()/(float)bitmapA.getWidth();
int test2[] = new int[2];
viewB.getLocationOnScreen(test2);
//Rect rect1 = new Rect();
//selectedImg.getDrawingRect(rect1);
//Rect rect2 = new Rect();
//logo.getDrawingRect(rect2);
//int logoHeight = logo.getHeight();
//int logoWidth = logo.getWidth();
//int logoLeft = logo.getLeft();
//int selectedImgLeft = selectedImg.getLeft();
float scaleFactorMid = (scaleFactor + scaleFactorWidth)/2;
c.drawBitmap(bitmapA, 0, 0, null);
//c.drawBitmap(logoBitmap, test2[0]*scaleFactorWidth, test2[1]*scaleFactor, null);
bitmapB = getResizedBitmap(bitmapB, (int)(bitmapB.getHeight()*scaleFactorMid), (int)(bitmapB.getWidth()*scaleFactorMid));
c.drawBitmap(bitmapB, bitmapA.getWidth()/2, bitmapA.getHeight()/2, null);
//v.layout(0, 0, v.getWidth(), v.getHeight());
//selectedImg.draw(c);
return b;
}
我試圖通過將視圖的寬度/高度和所述計算所述比例因子Bitmap
s寬度/高度。
我嘗試了很多,你可以看到。任何人都可以將我指向正確的方向嗎?
當我刪除img2NewX和img2newY的乘法0.5f時它工作(合併,不縮放)。當我保持原樣或更改兩個值時,位圖B的位置不正確。你確定這是我應該擴展的地方嗎? –