Ich habe eine TextView
mit einer OnTouchListener
. Was ich will, ist der Zeichenindex, auf den der Benutzer zeigt, wenn ich die MotionEvent
bekomme. Gibt es eine Möglichkeit, zu den zugrunde liegenden Schriftmetriken der TextView
zu gelangen?Android: Wie wird der Zeichenindex der Position eines Berührungsereignisses in TextView ermittelt?
Android: Wie wird der Zeichenindex der Position eines Berührungsereignisses in TextView ermittelt?
Antwort
Ich bin mir nicht bewusst eine einfache, direkte Art und Weise, dies zu tun, aber Sie sollten etwas gemeinsam in der Lage sein zu setzen mit der Paint Aufgabe der Textview über einen Aufruf TextView.getPaint()
Sobald Sie die Farbe Objekt haben Sie Zugriff auf die zugrunde liegenden FontMetrices über einen Aufruf von Paint.getFontMetrics() und Zugriff auf andere Funktionen wie Paint.measureText() Paint.getTextBounds() und Paint.getTextWidths() für den Zugriff auf die tatsächliche Größe des angezeigten Textes.
Haben Sie so etwas wie dies versucht:
Layout layout = this.getLayout();
if (layout != null)
{
int line = layout.getLineForVertical(y);
int offset = layout.getOffsetForHorizontal(line, x);
// At this point, "offset" should be what you want - the character index
}
Hope this ...
Ich habe die Google-Ingenieure bei den Google IO-Bürozeiten befragt, und das ist das Gleiche, was sie herausgefunden haben. –
Ich bin so glücklich, dass ich diese Antwort gefunden habe, danke Tony! Es funktioniert ganz gut! Jetzt habe ich keine Probleme mehr mit Touch-Events, selbst wenn die TextView Bilder enthält. :-) – einschnaehkeee
Danke, dass du mein Leben gerettet hast :) – Mingfei
- 1. Wie wird der Jitter in ggplot ermittelt?
- 2. Wie wird der USB-Host-Gerätetyp ermittelt?
- 3. Simulieren eines Berührungsereignisses in Android in einem Hintergrundthread
- 4. Wie ermittelt Android den Status der Internetverbindung?
- 5. Wie wird der Standard-Ruby LOAD_PATH ermittelt?
- 6. android - dynamisch Ändern der Position eines Imageview
- 7. Android Layout Position der Elemente
- 8. Wie kann die Position der Skriptquelle innerhalb eines Automatisierungsaufrufs ermittelt werden?
- 9. Android - Ändern der Position der Android-Aktionsleiste
- 10. Wie UID einer App bei der Installation in Android ermittelt?
- 11. android - TextView wird nicht in der UI aktualisiert
- 12. Cursor-Position in einem Textfeld (Zeichenindex, nicht x/y-Koordinaten)
- 13. Wie wird die Koordinate eines ClickableSpan in einem TextView abgerufen?
- 14. Wie ändert man den Text eines TextView in der Navigationsleiste?
- 15. Wie wird der richtige Ort beim ersten Service ermittelt?
- 16. Erkennung der Position eines Div
- 17. Wie wird die TextView-Ausrichtung mit Java in Android festgelegt?
- 18. Android: Wie man die 2 TextView in der ausgewählten Zeile eines ListViews koloriert
- 19. jQuery UI Sortierbar, wie wird der aktuelle Standort und der neue Speicherort im Update-Ereignis ermittelt?
- 20. wie Textview setzen in der unteren
- 21. Wie ermittelt man die Datentypen der Ergebnisse eines SQL?
- 22. In Android, wie leer TextView in der Mitte vertikal bleiben?
- 23. Android - Ändern der ImageView-Position zur Laufzeit
- 24. Android: Autocomplete TextView Ähnlich der Facebook App
- 25. Wie werden Ressourcenbezeichnerwerte in Android ermittelt?
- 26. Spiegeln der TextView horizontal
- 27. Sichtbarkeit der Textview in Dialog
- 28. Wie wird der beste Vorname eines Benutzers in Android abgerufen?
- 29. Android Alertdialog Position und Dimension der Spitze eines Layout gesetzt
- 30. Wie wird die Größe eines zugewiesenen C-Puffers ermittelt?
Dank hilft, landete ich dies oben mit. Schade, dass es keine einfache "pointToCharacterIndex" -Methode gibt, aber es war keine Hexerei, meinen eigenen Dank an Paint zu richten. – Epaga
@Tony Blues Antwort hat die pointToCharacterIndex Art von was Sie suchen. –