Один из способов сделать это - взять координаты x & y касания относительно сетки.
IE. в сетке 10x10 на площади 100x100.
Если касание было в 25,25, он выбрал бы квадрат 2,2 (используя массив). Затем вы можете сохранить это местоположение в переменной (чтобы переместить любую часть на нее, с которой вы ее изменяете) и при перетаскивании обновить растровое изображение x, y относительно касания.
Как только вы поднимете палец, скажем, 75,75, он установит кусок головоломки на 7,7 и переместит этот кусок на 2,2.
В моей игре Lazer Maze Lite я использовал что-то похожее, кроме перетаскивания. Моя, в основном, двигала зеркала и бомбы на ощупь, но ....
http://developer.android.com/guide/topics/ui/drag-drop.html