Хорошо, давайте посмотрим на OnTouchListener .
Вы видите, что onTouch (View, MotionEvent) возвращает логическое значение, если оно использовало событие.Таким образом, имея это в виду, вы, вероятно, захотите немного подсчитать и посмотреть, содержит ли ваш RectView или OvalView событие touch (используйте MotionEvent, чтобы получить координаты X, Y).Если он действительно есть, верните true, чтобы указать, что представление использовало событие touch.
Теперь мне не совсем ясно, в каком порядке вызывается каждый onTouch (), но я предполагаю, что он сначала вызывает дочерние представленияи, если это дочернее представление вернуло false, оно будет продолжать вызывать остальные методы onTouch ().
Если важно различать, были ли затронуты RectView или OvalView (например, оба могут быть теоретически затронуты одновременно)вам придется проделать какую-то дополнительную работу, чтобы увидеть, какую из них вы предпочитаете принять (возможно, одна нарисована поверх другой).