Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android富文本标记_Java_Android_Text_Formatting - Fatal编程技术网

Java Android富文本标记

Java Android富文本标记,java,android,text,formatting,Java,Android,Text,Formatting,我正在寻找一个库或使用优化的例子 向下标记以创建富文本 例如,要转向的对象: 1-*粗体*->粗体 2-斜体->斜体 长示例: 3-u Hello_*World*->HelloWorld 等等 我见过很多应用程序使用它,比如Discord、Whatsapp、Skype 我做过类似的事情,但我知道它没有经过优化,可能会导致运行时错误。您不需要任何额外的库 只需查看一下android.text.SpannableStringBuilder 这将允许您获得以下文本功能: 把它弄大一点 大胆的 下划线

我正在寻找一个库或使用优化的例子 向下标记以创建富文本

例如,要转向的对象:

1-*粗体*->粗体

2-斜体->斜体

长示例:

3-u Hello_*World*->HelloWorld

等等

我见过很多应用程序使用它,比如Discord、Whatsapp、Skype


我做过类似的事情,但我知道它没有经过优化,可能会导致运行时错误。

您不需要任何额外的库

只需查看一下android.text.SpannableStringBuilder

这将允许您获得以下文本功能:

  • 把它弄大一点
  • 大胆的
  • 下划线
  • 斜体
  • 突破
  • 有色的
  • 突出显示
  • 上标
  • 显示为下标
  • 显示为链接
  • 让它可以点击
这里有一个关于如何在文本视图中对单词应用粗体样式的示例:

String text = "This is an example with a Bold word...";  

// Initialize a new SpannableStringBuilder instance
SpannableStringBuilder strb = new SpannableStringBuilder(text);

// Initialize a new StyleSpan to display bold text
StyleSpan bSpan = new StyleSpan(Typeface.BOLD);

// The index where to start applying the Bold Span
int idx = text.indexOf("Bold");

strb.setSpan(
                bSpan, // Span to add
                idx, // Start of the span
                idx + 4, // End of the span 
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
        );

// Display the spannable text to yourTextView
yourTextView.setText(ssBuilder);        

我认为你必须寻找支持减价的图书馆


  • 看这个,你不需要图书馆来做这个。在查找库之前,请尝试找出Android SDK中本机可用的内容…@Anikta这是一个richeditor,而不是标记检测器。@Nirekin我知道这是可能的,我已经做到了。但我正在寻找一种优化的方式,这种方式不会使用太多的资源CPU@AhmadSattout现在更改问题的标题会使已提供的回答过时。如果你现在真的想知道如何做标记,你应该问一个新的问题,或者检查这个问题是否已经得到了回答,是的,但是你知道“Bold”这个词在哪里,但是很难找到字母“*”或“”你只需查找
    *
    -
    的索引就可以了。。。问题出在哪里?想象一下,浏览一个包含100多个字母的字符串,这不是时间效率问题,但你认为外部库会做什么,它会查看同一个字符串吗?不,当你知道开始和结束时,这很容易使用,而不是当你试图使用Markdown时。你应该有一些条件来生成要生成什么格式的文本。不知道你不能做任何事情。还有一件事,任何第三方库也会在内部使用一些概念来了解要格式化的文本的索引。
    SpannableStringBuilder str = new SpannableStringBuilder("Your awesome text");
    str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), start_int, end_int, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    TextView tv=new TextView(context);
    tv.setText(str);