2012-05-04 10 views
14

Estoy haciendo una subclase de ClickableSpan para personalizar el estilo de texto de los enlaces en mi TextView.Estilo TextView ClickableSpan para estado comprimido

private static class LinkSpan extends ClickableSpan { 
    @Override 
    public void onClick(View widget) { 
     // code... 
    } 

    @Override 
    public void updateDrawState(TextPaint ds) { 
     super.updateDrawState(ds); 
     ds.setUnderlineText(false); 
     ds.setTypeface(Typeface.create(ds.getTypeface(), Typeface.BOLD)); 
     ds.setColor(0xff336699); 
    } 
} 

Quiero cambiar el estilo cuando está en estado presionado, o un usuario toca el enlace. (como a:hover en css) pero no puedo encontrar la manera de obtener el estado actual en updateDrawState.

¿Hay alguna manera de manejar esto? Si no puedo cambiar el estilo del texto, quiero poder cambiar el color de fondo al menos.

EDITAR como se ha señalado por un comentario, usted puede encontrar la respuesta en Change the text color of a single ClickableSpan when pressed without affecting other ClickableSpans in the same TextView

+1

¿Has encontrado la respuesta? ¿Cómo terminaste haciendo esto? – Ravi

+1

Para quien sea que esto pueda ayudar en el futuro, eche un vistazo a este http://stackoverflow.com/a/20905824/1646326 –

Respuesta

9

Para cambiar el color de fondo que hice

testTextView.setHighlightColor(Color.BLUE); 

en la Vista de Texto.

Pero tener la oportunidad de cambiar el color del texto sería mejor para mí.

+0

Esto no fue lo que pregunté, pero acepté esta respuesta ya que es la única respuesta. La solución real está en http://stackoverflow.com/a/20905824/1646326 – dasony

+0

La próxima vez no sea tímido para publicar el enlace en una respuesta real y marcarlo como correcto. Ayudará a otros haciendo que la respuesta sea más visible. –

+0

Esto solucionó mi problema, ¡gracias! :) –

Cuestiones relacionadas