如何在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】:

您可以将SpannableStringStyleSpan 类型的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

如何在TextView Android Studio中计算单词[重复]

如何存储句子中的单词

如何在句子列表中的单词和左括号之间创建空格

如何在mysql pdo中计算句子中的单词

如何让 Python 循环遍历句子,但它给了我句子中的单词而不是句子中的每个字母? [复制]