Hola monchyrcg,
No sé si esto te servirá. Existe un evento llamado onTouchEvent() que se ejecuta cada vez que el usuario pulsa sobre la pantalla. A este evento se le pasa un MotionEvent del que se puede extraer la siguiente información:
event.getAction() - Obtiene la acción que el usuario ha realizado sobre la pantalla: MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE, MotionEvent.ACTION_UP.
event.getX() y event.getY() que te devuelven el punto en el que se está ejecutando la acción anterior.
Con estos valores, puedes hacer una función que determine si el punto está dentro del canvas a partir de su ubicación, y en ese caso ejecutar el código que necesites.
Código:
public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
int x = event.getX();
int y = event.getY();
switch(action){
case MotionEvent.ACTION_DOWN:
comprobarCanvas(x, y);
}
break;
}
}
Donde comprobar canvas sería una función que se recorre los marcadores que indicas y comprueba si el punto está contenido en alguno de ellos.