Cambiar el background del text justificado con DocumentView Spannable

Estoy tratando de cambiar el Fondo de una parte de un text usando la class DocumentView . Quiero que el text esté justificado, y creo que este es el mejor que he encontrado hasta ahora. Necesito usar los panes porque quiero negrita y cambiar el background de algún text.

Pero esa es la cosa. Bold funciona para mí. Cambio de background … No tanto.

Lo probé en un TextView normal, funciona perfectamente.

Entonces hice una investigación.

Descubrí que necesitas usar SpannableDocumentLayout si quieres cambiar el background, o negrita (que funciona nuevamente por algún motivo) o algo por el estilo.

Aquí está el file para SpannableDocument Layout

No estoy seguro de cómo usarlo, pero encontré un fragment de código que muestra cómo usarlo.

ArticleBuilder a = new ArticleBuilder(); a.append("WHO: Ebola Cases", false, new RelativeSizeSpan(2f), new StyleSpan(Typeface.BOLD)) .append("<font color=0xFFC801>Sam Frizell</font><font color=0x888888> @Sam_Frizell Oct. 25, 2014</font>", false, new RelativeSizeSpan(0.8f), new StyleSpan(Typeface.BOLD)) .append("In New York and New Jersey, governors Andrew Cuomo and Chris Christie have implemented controversial quarantines on all healthcare workers returning from West Africa after a doctor returning from Guinea contracted the disease and was diagnosed in New York.", true, new RelativeSizeSpan(1f), new JustifySpan()); DocumentView documentView = new DocumentView(this, SpannedDocumentLayout.class); // Support spanned text documentView.setText(a, true); // Set to `true` to enable justification 

Sin embargo, por alguna razón, no tengo ese file.

Esto es lo que tengo en mis dependencies:

 `compile 'com.github.bluejamesbond:textjustify-android:2.1.6'` 

Que parece ser el último en el sitio.

Parece decir que puedes usar Spannable TextView con diferentes colors

También menciona algo relacionado con:

 documentView.setText(newText); documentView.invalidateCache(); documentView.requestLayout(); 

Pero no estoy seguro si esa es una forma más antigua de establecer un intervalo regular o no.

Además, por último, ahora hay una forma de utilizar JustifiedText con Android O. ¿Es posible utilizarlo también en versiones anteriores o es solo Android O y en adelante? Tal vez deshacerse de esto quien DocumentView.

¡Realmente aprecio tu ayuda! Cualquier información ayudaría mucho, incluso un paso en la dirección correcta.

¡Gracias!

EDITAR

Este es mi código:

  DocumentView test1 = findViewById(R.id.test1); Spannable span = new SpannableString(test1.getText()); span.setSpan(new android.text.style.BackgroundColorSpan(Color.YELLOW), 0, span.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); test1.setText(span);