Cómo establecer el color de UnderlineSpan?
Esta pregunta es un seguimiento de mi última pregunta: ¿Cómo resaltar texto como Android corrector ortográfico?
Estoy utilizando un UnderlineSpan para subrayar el texto en un EditText pero necesito el subrayado para estar en color como esta captura de pantalla del corrector ortográfico:
- Romper el texto grande en las páginas en el selector de texto androide o ver flipper
- Cómo jugar GIF animado en TextView?
- Actualizar TextView desde Async Tarea que utiliza el diálogo de programa personalizado
- ResourceNotFoundException - ID de recurso de cadena
- Android TextView DrawableTint en dispositivos pre v23
- Cómo configurar un efecto ripple en textview o imageview en Android?
- Cómo puedo obtener el texto en una línea específica en un TextView
- Cómo EditarTexto Conserva su valor pero no visualiza texto cuando cambia la orientación del teléfono?
- Estilo conjunto de Android en el código
- Cómo iniciar la barra de acción contextual para ver el texto de forma programática con opions por defecto copiar y seleccionar todo?
- Visualización de un archivo MS Word en la vista (diga TextView) en Android
- Cómo configurar el estilo de fuente en negrita, cursiva y subrayado en un Android TextView?
- Agregar oyentes diferentes para texto en TextView
Por desgracia, no se puede hacer esto únicamente con un Span – no hay métodos públicos para hacer lo que pides. Hay un método para establecer el color de subrayado en TextPaint independiente del color de texto (se puede ver en el código fuente de SuggestionSpan), pero está oculto .
Si puede obtener acceso al EditText, puede manejar el Span y dibujar el subrayado usted mismo, pero de lo contrario está fuera de suerte.
Así es como lo hice funcionar
Spanned part_1 = Html.fromHtml(getString(R.string.part1)); Spanned part_2 = Html.fromHtml("<u><font color='#2eb6f0'>Text in blue</font></u>"); Spanned part_3 = Html.fromHtml(getString(R.string.part3)); Spanned output = (Spanned) TextUtils.concat(part_1, part_2, part_3); textview.setText(output, TextView.BufferType.SPANNABLE);
Aquí está la función que usted puede utilizar para fijar el color de la línea debajo del texto
public void addUnderLineLink(TextView mTextView) { if (mTextView != null) { SpannableString content = new SpannableString(mTextView.getText().toString()); UnderlineSpan us=new UnderlineSpan(); TextPaint tp=new TextPaint(); tp.setColor(ContextCompat.getColor(getContext(),R.color.white)); us.updateDrawState(tp); content.setSpan(us, 0, mTextView.getText().toString().length(), 0); mTextView.setText(content); } }
- Traceview no puede abrir desde DDMS en eclipse
- Cómo hacer que el texto de EditText sea vertical (Android)