Tuesday, April 3, 2012

Highlighting Text Color using Html.fromHtml() in Android?


I am developing an application in which there will be a search screen where user can search for specific keywords and that keyword should be highlighted. I have found Html.fromHtml method.



But I will like to know whether its the proper way of doing it or not.



Please let me know your views on this.



Regards Sunil

3 comments:

  1. Or far simpler than dealing with Spannables manually, since you didn't say that you want the background highlighted, just the text:

    String styledText = "This is <font color='red'>simple</font>.";
    textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);

    ReplyDelete
  2. This can be achieved using a Spannable String. You will need to import the following

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


    And then you can change the background of the text using something like the following:

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


    Where this will highlight the charecters at pos 1 - 4 with a red color. Hope this helps!

    ReplyDelete
  3. Alternative solution: Using a WebView instead. Html is easy to work with.

    WebView webview = new WebView(this);

    String summary = "<html><body>Sorry, <span style=\"background: red;\">Madonna</span> gave no results</body></html>";

    webview.loadData(summary, "text/html", "utf-8");

    ReplyDelete