Ho un TextView
con molti ClickableSpan
.Come ottenere coordinate di ClickableSpan all'interno di TextView?
Al clic su un ClickableSpan
, devo ottenere la coordinata sullo schermo di esso (per mostrare un custom View
nella sua posizione).
Il problema è che non ho idea di come posso farlo. Il metodo onClick()
di ClickableSpan
mi fornisce nel parametro a View
, il TextView
che contiene ClickableSpan
.
Ho usato quanto segue per ottenere la posizione dei caratteri nel TextView
, ma non so come posso convertirlo per ottenere la posizione x/y sullo schermo del testo.
@Override
public void onClick(View v){
SpannableString completeText = (SpannableString)((TextView) v).getText();
Log.v("characters position", completeText.getSpanStart(this) + "/" + completeText.getSpanEnd(this));
}
Grazie in anticipo per il vostro aiuto!
MODIFICA: Voglio ottenere l'intera coordinata di ClickableSpan e le sue dimensioni, l'obiettivo è mostrare la mia vista personalizzata in basso al centro del testo. Il metodo onTouch mi darà la posizione del dito, non le coordinate del testo intero. Quindi, con questo metodo, non avrò la parte centrale del testo.
Sostituire onTouch() e utilizzare event.getX(), event.getY()? –
Grazie per la tua risposta! Purtroppo, ho trovato questo metodo molto ... brutto! Spero che ci sia una soluzione migliore. Inoltre, ho dimenticato di dare un'altra precisazione: voglio ottenere l'intera coordinata di ClickableSpan e le sue dimensioni, l'obiettivo è mostrare la mia vista personalizzata in basso al centro del testo. Il metodo onTouch mi darà la posizione del dito, non le coordinate del testo intero. Quindi, con questo metodo, non avrò la parte centrale del testo. Qualche altra idea? –