Frage

Ich arbeite an einer Anwendung, die eine Leinwand mit einem Bündel von kleinen Bildern hat, dass der Benutzer zieht um kann, und eine „Box“, dass der Benutzer aus zieht neue Bildobjekte zu erstellen oder ziehen Sie ein vorhandenes Bild, um es , und es wird sie entfernen.

Was ist der beste Weg, um festzustellen, ob der Benutzer einen Bereich oder ein Bild auf dem Bildschirm berührt hat? Das erste, was in den Sinn kommt ist der Vergleich offensichtlich die Berührungskoordinaten mit jedem Objektkoordinaten, aber das scheint ein wenig umständlich. Gibt es eine bessere oder in Art und Weise gebaut?

Danke

War es hilfreich?

Lösung

Die Ansicht Klasse in Android hat ein OnClickListener die Sie verwenden können zu erkennen, wenn der Benutzer auf einen Blick klickt. Wenn Sie Ihre ‚Bilder‘ implementieren (wie Sie sie nennen), wie Ansichten können Sie einfach einen Klick Zuhörer zu jeder hinzufügen zu finden, welche Ansicht geklickt wurde. Fügen Sie den Hörer wie folgt aus:

// 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);  
  }
});

Andere Tipps

Es hängt davon ab, wie kompliziert Ihre Schnittstelle ist, aber im Grunde, wenn Sie onTouchEvent außer Kraft gesetzt werden, die Koordinaten erhalten Sie unter Bezugnahme wurden.

Um zu finden, was berührt wurde, ohne jedes Objekt geht, Sie Möglichkeiten, dies zu vereinfachen finden konnten, beispielsweise durch Aufspaltung in dem Bildschirm vielleicht 8 Gitter, und weiß, welche Gitter (n) jedes Objekt ist in, so dass wenn der Bildschirm berührt wird, dann können Sie die Objekte finden, die in diesem Gitter sein kann, und so werden Sie weniger Elemente zu durchschauen sind.

Für eine kurze Antwort auf wie onTouchEvent verwenden, können Sie sehen:

http://androidforums.com/android- Spiele / 210019-Touch-Event-Bild-made-canvas.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top