¿Destaca el color del texto usando Html.fromHtml () en Android?

Estoy desarrollando una aplicación en la que habrá una pantalla de búsqueda en la que el usuario puede buscar palabras clave específicas y esa palabra clave debe resaltarse. He encontrado el método Html.fromHtml.

Pero me gustaría saber si es la forma correcta de hacerlo o no.

Por favor, hágame saber su opinión sobre esto.

O mucho más simple que tratar con Spannable manual, ya que no dijiste que quieres resaltar el fondo, solo el texto:

 String styledText = "This is simple."; textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE); 

Usar el valor de color del recurso xml:

 int labelColor = getResources().getColor(R.color.label_color); String сolorString = String.format("%X", labelColor).substring(2); // !!strip alpha value!! Html.fromHtml(String.format("text", сolorString), TextView.BufferType.SPANNABLE); 

Esto se puede lograr usando una cadena Spannable. Deberá importar los siguientes

 import android.text.SpannableString; import android.text.style.BackgroundColorSpan; import android.text.style.StyleSpan; 

Y luego puedes cambiar el fondo del texto usando algo como lo siguiente:

 TextView text = (TextView) findViewById(R.id.text_login); text.setText(""); text.append("Add all your funky text in here"); Spannable sText = (Spannable) text.getText(); sText.setSpan(new BackgroundColorSpan(Color.RED), 1, 4, 0); 

Donde esto resaltará los caracteres en las posiciones 1 – 4 con un color rojo. ¡Espero que esto ayude!

Solución alternativa: utilizando un WebView en su lugar. Html es fácil de trabajar.

 WebView webview = new WebView(this); String summary = "Sorry, Madonna gave no results"; webview.loadData(summary, "text/html", "utf-8"); 
  String name = modelOrderList.get(position).getName(); //get name from List String text = "" + name + ""; //set Black color of name /* check API version, according to version call method of Html class */ if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N) { Log.d(TAG, "onBindViewHolder: if"); holder.textViewName.setText(context.getString(R.string._5687982) + " "); holder.textViewName.append(Html.fromHtml(text)); } else { Log.d(TAG, "onBindViewHolder: else"); holder.textViewName.setText("123456" + " "); //set text holder.textViewName.append(Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY)); //append text into textView } 
 textview.setText(Html.fromHtml(""+text contain+"")); 

Le dará al color exactamente lo que ha hecho en el editor de html, simplemente configure la vista de texto y concatúrela con el valor de la vista de texto. Android no es compatible con el color de span, cámbielo a color de fuente en el editor y ya está listo para comenzar.

la fuente está obsoleto use span en lugar de Html.fromHtml (“” + content + “”)