Wie kann ein "Zielpunkt" des Android-Drag-Shadow aus seinem "Touch Point" verschoben werden?

Ich entwickle eine Anwendung, die von einer präziseren Kontrolle profitieren würde, wo ein gezogenes Objekt gelöscht wird. Aber mit einem kapazitiven Touchscreen wird ein User-Finger immer das Drop-Ziel verdecken.

Android ermöglicht es, den "Touch Point" auf einem Drag Shadow zu spezifizieren, indem er die View.DragShadowBuilder.onProvideShadowMetrics() Methode überschreibt. Aber es scheint nicht, ein Weg zu sein, um einen vertriebenen "Zielpunkt" zu geben. Ich möchte einen Pfeil aus dem Berührungspunkt des Schleppschattens projizieren, der mit mehr Präzision auf das Drop-Ziel manövriert werden kann.

  • Wie schreibe ich ein riesiges InputStream in Datei?
  • JQuery Mobile / Phonegap auf Android - alle Text zeigt in Caps
  • Welche Dateien sollte ich in einem Android-Projekt auf SVN ignorieren
  • Quellcode von Google Chrome Android App?
  • Senden von POST-Daten in Android
  • Jenkins Build fehlgeschlagen aufgrund fehlender Android SDK
  • Frage: Was wäre der einfachste / eleganteste Weg, dies zu erreichen?

    Ich glaube, ich könnte während des Ziehvorgangs eine unsichtbare Schicht über den Bildschirm legen, die die Koordinaten des Berührungspunktes registriert, sie übersetzt und sie an die eigentlichen Drop-Targets sendet – Drag-Events im Wesentlichen implementieren. Aber ich würde gerne wissen, ob es eine einfachere Lösung gibt. Oder wenn jemand anderes so etwas getan hat.


    Edit: Hier ist ein grobes Mockup der Art von Drag-Shadow, die ich gerne hätte:

    Bildbeschreibung hier eingeben

  • Ermittlung und Vermeidung von Android Scheduling Verzögerung
  • Wie kann man die Anwendung aus der aktuellen Anwendungsliste entfernen?
  • Eclipse ADT-Update funktioniert nicht
  • Android-Tests erstellen Fehler: Mehrere Dex-Dateien definieren Landroid / support / test / BuildConfig
  • Mit dem Android RecognizerIntent mit einem Bluetooth-Headset
  • Wie zu schweben schwimmende Aktion-Taste mit Android-Aktivität Übergang?
  • One Solution collect form web for “Wie kann ein "Zielpunkt" des Android-Drag-Shadow aus seinem "Touch Point" verschoben werden?”

    Frage: Was wäre der einfachste / eleganteste Weg, dies zu erreichen?

    Wie Sie bereits gesehen haben, können Sie die View.DragShadowBuilder Klasse nicht verwenden, da es keine Möglichkeit gibt, den Punkt des Schattenhandles und den Punkt zu berücksichtigen, der für alle gesendeten Drag-Ereignisse berücksichtigt wird. Ich sehe auch keine andere Möglichkeit, das Schleppsystem neu zu reparieren, auch wenn du die View Klasse erweitert hast (was wäre schwerfällig).

    Ich glaube, ich könnte während des Ziehvorgangs eine unsichtbare Schicht über den Bildschirm legen, die die Koordinaten des Berührungspunktes registriert, sie übersetzt und sie an die eigentlichen Drop-Targets sendet – Drag-Events im Wesentlichen implementieren.

    Das ist ein Weg , es zu tun und es ist ganz einfach, wenn Sie nicht eine komplizierte Drag & Drop-Anforderung haben.

    Aber ich würde gerne wissen, ob es eine einfachere Lösung gibt.

    Sie könnten wohl besser sein, die grundlegenden Android-Layouts zu verlängern (zumindest die, die Sie verwenden) und implementieren die Drag-Logik dort. Auf diese Weise werden Sie vermeiden, die Notwendigkeit für die Verwaltung einer anderen Schicht und auch einige zusätzliche Berechnung. Ich habe die RelativeLayout Klasse erweitert, um diese Logik zu implementieren, die du hier finden kannst . Ich habe diese Klasse in einer solchen Aktivität verwendet, die dieses Layout hat . Die Probe ist einfach und es braucht mehr Arbeit (und Denken), um es flexibler zu machen und auch einige mögliche Probleme zu lösen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.