When you are tracking a single touch movement, all the events would be sent to a single view.
So instead of tracking touch events for each Dots, you should track touch events for the common parent ViewGroup.
Lets say you have a frame layout with all the dots places inside.
create a Map<Rect, View> for all the dots, where Rect is the position of that view in the viewgroup,
Rect pos = new Rect(child.getLeft(), child.getTop(), child.getLeft() + child.getWidth(), child.getTop() + child.getHeight());
Essentially you need to create this map only once (and probably again after a relayout).
Then check which Dot was pressed using Rect.contains for each rect,
then on ACTION_MOVE,
Check if the same view was touched, and if not, again check for all the views to see if any other view was touched.