Если я правильно понимаю, вы пытаетесь определить, какой объект, нарисованный на экране, был нажат?
Я знаю, что это не совсем то, что вы просили, но когда я реализовал пользовательское представление прошлого, я обычно обрабатывал обнаружение щелчков следующим образом:
Я получаю координаты x и y объектов, которые вы хотите кликать. В вашем методе onTouchEvent (событие MotionEvent) в вашем классе SurfaceView есть оператор if, который проверяет, находятся ли x и y щелчка в пределах вашего объекта.
Вот некоторый код, чтобы лучше проиллюстрировать то, что я говорю:
@Override
public boolean onTouchEvent(MotionEvent event)
{
// If the user touches the space occupied by object1
if(event.getAction() == MotionEvent.ACTION_DOWN
&& event.getX() <= object1.xPosition + object1.width
&& event.getX() >= object1.xPosition
&& event.getY() >= object1.yPosition
&& event.getY() < object1.yPosition + object1.height)
{
// The click was in the bounds of object1's current location
object1.doSomething();
}
// ......
}
Надеюсь, это имеет смысл и несколько полезно.