如何在Android Studio上将句子中的单词斜体?
Posted
技术标签:
【中文标题】如何在Android Studio上将句子中的单词斜体?【英文标题】:How to italic a word in sentence on Android studio? 【发布时间】:2020-11-26 06:50:26 【问题描述】:我是开发 android 应用的新手。我想把一些字变成斜体,但它不能正常工作。 你能告诉我是否可以将句子中的单词变成斜体?如果可以,请告诉我如何使它成为斜体?
我用listview做了一个glosarium,我在array list上做的句子是这样的
a.add("Acuminatus"+"Type of leaf");
我尝试添加的“Acuminatus”一词如何斜体
"\030 Acuminatus"
或者
"<i>Acumunatus</i>"
但是还是不行
更多代码
Private List<String> populateA()
List<String> a=new ArrayList<String>();
a.add("Acuminatus"+"\n \n Type of leaf");
.....
Return a;
【问题讨论】:
【参考方案1】:在你要显示的地方使用下面的方法:
public static Spanned fromhtml(String html)
Spanned result;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N)
result = Html.fromHtml(html, FROM_HTML_MODE_LEGACY);
else
result = Html.fromHtml(html);
return result;
调用方式:
textview.setText(fromHtml("<i>Acumunatus</i> Type of leaf"))
【讨论】:
最好直接创建一个Spanned字符串。创建一个人工的 Html 然后对其进行转换,开销很大。 是的,我知道,但是字符串是动态的,因此,索引查找对他来说很困难。所以在这里添加了简单的解决方案 你能指导我如何在我的 ArrayList 上实现它吗? 您可以从 arrayList 中收集每个项目并传递给 fromHtml() 方法。作为textview.setText(fromHtml(a[i]))
另外一个可能的想法是改变你使用的字体,如果它适合你的目的。【参考方案2】:
您可以将SpannableString
与StyleSpan
类型的Span 一起使用。调用setSpan()
获取您要设置样式的文本的索引
SpannableString output = new SpannableString("Acuminatus" + " Type of leaf");
output.setSpan(new StyleSpan(Typeface.ITALIC), 0, 11, 0);
textview.setText(output);
【讨论】:
以上是关于如何在Android Studio上将句子中的单词斜体?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Linux 上将 MXQ-4K 安卓电视盒连接到 Android Studio