Mettre en évidence la couleur du texte en utilisant Html.fromHtml () dans Android?

Je développe une application dans laquelle il y aura un écran de recherche où l’utilisateur pourra rechercher des mots-clés spécifiques et ce mot-clé devrait être mis en évidence. J’ai trouvé la méthode Html.fromHtml.

Mais j’aimerai savoir si c’est la bonne façon de le faire ou non.

S’il vous plaît laissez-moi savoir votre sharepoint vue à ce sujet.

Ou bien plus simple que de traiter manuellement avec Spannable , puisque vous n’avez pas dit que vous voulez que l’arrière-plan soit mis en évidence, juste le texte:

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

Utilisation de la valeur de couleur de la ressource xml:

 int labelColor = getResources().getColor(R.color.label_color); Ssortingng сolorSsortingng = Ssortingng.format("%X", labelColor).subssortingng(2); // !!ssortingp alpha value!! Html.fromHtml(Ssortingng.format("text", сolorSsortingng), TextView.BufferType.SPANNABLE); 

Cela peut être réalisé en utilisant une chaîne Spanable. Vous devrez importer les éléments suivants

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

Et puis vous pouvez changer le fond du texte en utilisant quelque chose comme ceci:

 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); 

Où cela mettra en évidence les caractères à la position 1 – 4 avec une couleur rouge. J’espère que cela t’aides!

Solution alternative: utiliser un WebView à la place. Html est facile à utiliser.

 WebView webview = new WebView(this); Ssortingng summary = "Sorry, Madonna gave no results"; webview.loadData(summary, "text/html", "utf-8"); 
  Ssortingng name = modelOrderList.get(position).getName(); //get name from List Ssortingng 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+"")); 

Cela donnera à la couleur exactement ce que vous avez créé dans l’éditeur HTML, il suffit de définir la vue du texte et de la concaténer avec la valeur textview. Android ne prend pas en charge la couleur d’extension, changez-la en couleur de police dans l’éditeur et vous êtes tous prêt à partir.

la police est obsolète, utilisez span à la place Html.fromHtml (“” + content + “”)