Pregunta

Estoy trabajando en una aplicación que tiene un lienzo con un montón de pequeñas imágenes que el usuario puede arrastrar alrededor, y una "caja" que el usuario va a arrastrar a la creación de nuevos objetos gráficos o arrastrar una imagen existente a lo , y lo eliminará.

¿Cuál es la mejor manera de detectar si el usuario ha tocado un área, o una imagen en la pantalla? La primera cosa que viene a la mente es, obviamente, comparando las coordenadas táctiles con las coordenadas de cada objeto, pero que parece un poco engorroso. ¿Hay una mejor o construido en forma?

Gracias

¿Fue útil?

Solución

El Ver clase en Android tiene un OnClickListener que se puede utilizar para detectar cuando el usuario hace clic en una vista. Si implementa sus 'imágenes' (como se les llama) como dictamen simplemente puede añadir un detector de clics para cada uno para encontrar qué punto de vista se ha hecho clic. Añadir al oyente como esto:

// Get a reference to the view from xml (or if you 
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{

  @Override
  public void onClick(View v)
  {
    // Do stuff with view (the View v that is passed is the View that was touched)
    doStuff(v);  
  }
});

Otros consejos

Depende de la complejidad de su interfaz es, básicamente, pero si reemplaza onTouchEvent que les permite conocer las coordenadas que se está refiriendo a.

Con el fin de encontrar lo que estaba tocado, sin pasar por cada objeto, se puede encontrar la manera de simplificar esto, como por ejemplo mediante la división de su pantalla en quizás 8 rejillas, y saber que la rejilla (s) cada objeto se encuentra, de manera que cuando se toca la pantalla a continuación, se pueden encontrar los objetos que pueden estar en esa red, y por lo que tendrá un menor número de elementos para mirar a través.

En una breve respuesta sobre cómo utilizar onTouchEvent se puede ver en:

http://androidforums.com/android- juegos / 210019-touch-evento-imagen-hecho-canvas.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top