Android에서 Html.fromHtml ()을 사용하여 텍스트 색상 강조?
사용자가 특정 키워드를 검색 할 수있는 검색 화면이 있고 해당 키워드가 강조 표시되어야하는 애플리케이션을 개발 중입니다. Html.fromHtml 메서드를 찾았습니다.
그러나 나는 그것이 그것을하는 적절한 방법인지 아닌지 알고 싶습니다.
이에 대한 귀하의 견해를 알려주십시오.
또는 Spannable
s를 수동으로 처리하는 것보다 훨씬 간단 합니다. 배경을 강조 표시하지 않고 텍스트 만 강조하기 때문입니다.
String styledText = "This is <font color='red'>simple</font>.";
textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
xml 리소스의 색상 값 사용 :
int labelColor = getResources().getColor(R.color.label_color);
String сolorString = String.format("%X", labelColor).substring(2); // !!strip alpha value!!
Html.fromHtml(String.format("<font color=\"#%s\">text</font>", сolorString), TextView.BufferType.SPANNABLE);
이는 Spannable String을 사용하여 달성 할 수 있습니다. 다음을 가져와야합니다.
import android.text.SpannableString;
import android.text.style.BackgroundColorSpan;
import android.text.style.StyleSpan;
그런 다음 다음과 같이 텍스트의 배경을 변경할 수 있습니다.
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);
이것이 위치 1-4의 문자를 빨간색으로 강조 표시합니다. 도움이 되었기를 바랍니다!
대체 솔루션 : 대신 WebView 사용. HTML은 작업하기 쉽습니다.
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");
String name = modelOrderList.get(position).getName(); //get name from List
String text = "<font color='#000000'>" + name + "</font>"; //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
}
글꼴은 더 이상 사용되지 않습니다. 대신 스팬을 사용하십시오. Html.fromHtml("<span style=color:red>"+content+"</span>")
textview.setText(Html.fromHtml("<font color='rgb'>"+text contain+"</font>"));
html 편집기에서 만든 것과 정확히 일치하는 색상을 제공하고 textview를 설정하고 textview 값과 연결하면됩니다. Android는 스팬 색상을 지원하지 않으며 편집기에서 글꼴 색상으로 변경하면 모든 설정이 완료됩니다.
텍스트의 일부에 밑줄과 색을 칠하려면
strings.xml에서
<string name="text_with_colored_underline">put the text here and <u><font color="#your_hexa_color">the underlined colored part here<font><u></string>
다음 활동에서
yourTextView.setText(Html.fromHtml(getString(R.string.text_with_colored_underline)));
클릭 가능한 링크의 경우 :
<string name="text_with_link"><![CDATA[<p>text before link<a href=\"http://www.google.com\">title of link</a>.<p>]]></string>
그리고 당신의 활동에서 :
yourTextView.setText(Html.fromHtml(getString(R.string.text_with_link)));
yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
참고 URL : https://stackoverflow.com/questions/2730706/highlighting-text-color-using-html-fromhtml-in-android
'Nice programing' 카테고리의 다른 글
Eclipse Juno 디버그 도구 모음이 없습니까? (0) | 2020.10.08 |
---|---|
Flask-SQLAlchemy 단일 테이블에서 모든 행을 삭제하는 방법 (0) | 2020.10.08 |
Google로 로그인하기 위해 OAuth2를 사용한 애플리케이션에서 로그 아웃하는 방법은 무엇입니까? (0) | 2020.10.08 |
Google Maps V2를 사용하여 단일 마커를 제거하는 방법은 무엇입니까? (0) | 2020.10.08 |
List Comprehension Python에서 두 개의 for 루프를 프레임하는 방법 (0) | 2020.10.08 |