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

时间:2015-05-08 06:10:37

标签: android canvas bitmap surfaceview

我是Android手中 Canvas SurfaceView 的新手。

我正在尝试使用 canvasview 使用 canvas 实现一个应用程序,我想在该视图上拖动位图。我可以拖动任何no.of位图

我在位图中有两种不同的尺寸,如下图所示:

IMAGE

要求

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

  2. 小而等分的尺寸/分辨率位图(A,B,C,D,E .....) - n(数量无限制)

  3. 3.我必须将A / B / C / ...拖到Bmp1。当任何小的Bmp到达Bmp1并且它在相对端口的周围时(A / B / C / .... )应建立联系。

    4.所以,我必须将任何BMP拖过任何其他BMP

    问题

    1. 当我将一个小的Bitmap拖动到大Bitmap时,它们会在大中心处重叠,并且无法分别拖动小Bitmap直到移动大Bitmap。

    2. 当两个小位图关闭时,一个位图在下方绘图位图上重叠,无法将它们分开。

    3. 如何避免这些问题?

1 个答案:

答案 0 :(得分:0)

正常碰撞检测...使用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(“致命”,“重叠......世界将爆炸”);

或类似的东西......“AABB”< - google that