我想在Android应用程序中使用自定义字体,但使用自定义字体似乎很痛苦?!我可以通过将其添加到每个TextView - >许多样板代码来以编程方式设置自定义字体.我可以创建一个新类CustomTextView扩展TextView并在构造函数中添加setTypeface - >不再有xml上下文感知属性帮助.
还有另一种设置自定义字体的方法吗?按XML,按风格,按主题?
提前致谢!
PS是否有可能通过XML设置下划线?
我试图在我的strings.xml中使用HTML标记<b>和</ b>根据此答案制作粗体文本:
<string name="name"><b>bold text here</b></string>
Run Code Online (Sandbox Code Playgroud)
然后尝试将文本设置如下:
TextView textview = new TextView(getActivity());
textview.setText(getString(R.string.name));
Run Code Online (Sandbox Code Playgroud)
但是这根本不起作用,标签被忽略,文本会定期显示.我已经能够使用以下方法使文本变为粗体:
<string name="name"><b>bold text here</b></string>
Run Code Online (Sandbox Code Playgroud)
并使用Java中的此代码:
TextView textview = new TextView(getActivity());
textview.setText(Html.fromHtml(getString(R.string.name)));
Run Code Online (Sandbox Code Playgroud)
为什么简单的HTML标签不起作用,这另一种方法可以正常工作?
目前,我正在开发拼写和语法检查应用程序。它具有EditText,用户可以在其中输入文本,并且在单击按钮应用程序时单击一个名为“ Check Text”的按钮将调用LanguageTool API来检查文本并返回带有结果的JSON响应。
这是到目前为止我一直尝试突出显示多个单词的代码,但是此代码仅突出显示我创建的数组中的最后一个单词:
for (int i = 0; i < errorStrings.size(); i++) {
// Here textToCheck is EditText & errorStrings is ArrayList of type WrongString class which i have created to hold Error string , offset & length.
Spannable wordtoSpan = new SpannableString(texttoSend);
wordtoSpan.setSpan(new BackgroundColorSpan(Color.BLUE),errorStrings.get(i).getOffset(),
(errorStrings.get(i).getOffset()+errorStrings.get(i).getLength()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textToCheck.setText(wordtoSpan);
}
Run Code Online (Sandbox Code Playgroud)