Поскольку вы пытаетесь захватить MotionEvent, который включает в себя все кнопки, а не одну, вам нужно будет захватить MotionEvents в родительском представлении, а затем отправить их дочерним кнопкам в виде MotionEvent.ACTION_DOWN.затем MotionEvent.ACTION_UP.
Я сделал нечто подобное, чтобы сделать мультитач-клавиатуру из RelativeLayout, содержащего много кнопок.Я в основном переопределил dispatchTouchEvent
и отслеживал каждый палец, отправляя ACITON_DOWN и ACTION_UP вместо ACTION_POINTER_DOWN и ACTION_POINTER_UP для вторичных пальцев для детей.
Может быть полезно взглянуть на источник ViewGroup и посмотрите, как она отправляет события своим дочерним элементам, и настройте поведение, чтобы проверить, когда палец выходит за пределы дочерних кнопок, и, если это так, отправьте ACTION_UP на старую кнопку, а затем ACTION_DOWN нановая кнопка.