如何使用 Android 中的 Surfaceview 在 Canvas 上将位图拖动到另一个位图上

How to Drag a bitmap over another Bitmap on Canvas with Surfaceview in Android

我不熟悉在 Android.

中使用 CanvasSurfaceView

我正在尝试使用 Surfaceview 实现带有 canvas 的应用程序,我想在上面拖动位图view.I 我可以拖动任何 no.of 位图。

我在位图中有 2 种不同大小,如下图所示:

IMAGE

要求

  1. 大尺寸 (Bmp1) 位图 - 1

  2. dimension/resolution位图(A,B,C,D,E.....)-n(个数不限)

3.I 必须拖动 A/B/C/... 到 Bmp1.And 当任何小 Bmp 到达 Bmp1 并且它在其相关端口的周围时(A/B/C/....) 应建立连接。

4.So,我必须将任何 BMP 拖到任何其他 BMP 上

问题 :

  1. 当我将一个小位图拖到大位图时,当它们接近时,小位图重叠在中心的大位图上,无法单独拖动小位图,直到移动大位图。

  2. 当两个小位图接近时,上面的位图重叠在下面的绘图位图上,无法分开。

如何避免这些问题?

正常碰撞检测...使用 for 循环遍历其他位图位置...在此循环中只需检查

if(Math.abs(draggedBMP.posX-otherBMP.posX)< draggedBMP.width/2+otherBMP.width/2&&Math.abs(draggedBMP.posY-otherBMP.posY)< draggedBMP.height/2+otherBMP.height/2) Log.e("fatal","overlapping...world will explode");

或类似的东西..."AABB"<- google 那