2010-02-20 5 views

Antwort

5

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.

+0

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

+0

@Tony Blues Antwort hat die pointToCharacterIndex Art von was Sie suchen. –

23

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 ...

+1

Ich habe die Google-Ingenieure bei den Google IO-Bürozeiten befragt, und das ist das Gleiche, was sie herausgefunden haben. –

+0

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

+0

Danke, dass du mein Leben gerettet hast :) – Mingfei

Verwandte Themen