Tengo una imagen que estoy mostrando a un usuario en mi aplicación de Android.Obtener coordenadas táctiles relativas a una vista (equivalente a ScreenToClient)
Quiero ser capaz de decir dónde 'tocan' la imagen.
puedo conseguir fácilmente la pantalla de coordenadas mediante la implementación de un OnTouchListener
private OnTouchListener image_Listener = new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
float x = event.getX();
float y = event.getY();
return true;
}
return false;
}
};
Sin embargo, estos son coordenadas absolutas. Lo que realmente necesito es una función para convertir esto en coordenadas relativas a una Vista ...
He hecho un poco de investigación, pero parece que no puedo encontrar nada, aparte de mí tratando de implementar un método ScreenToClient yo mismo ..
¿Alguien sabe de una buena solución para esto, o voy a tener que hacer mi propia?
Parece que el tipo de método estaría disponible, es por eso que estoy preguntando.
Gracias a todos por su tiempo.
EDITAR: No estoy tan seguro de que las coordenadas ya no sean relativas a la vista. Podría haber jurado leer que las coordenadas eran absolutas, pero después de algunos retoques, tengo las cosas funcionando como esperaba ... Perdón por el ruido chicos.
Gracias por su respuesta. – syllogism
Estoy llegando la misma pregunta. Desde el tutorial, estos métodos, como view.getLeft(). "devolver la ubicación de la vista relativa a su padre". A menudo, con un diseño complicado, la vista investigada no es un elemento directo de una vista de pantalla. Entonces el método mencionado por Deev no puede aplicarse siempre. Alguna idea nueva? – user1914692
Hmm, encuentro una forma: use View.getLocationOnScreen() y/u getLocationInWindow(). – user1914692