android - 我可以在 android 中更改跨度文本吗

标签 android

这是我的代码,我想在我的 Textview 中放置两种字体。我可以成功地实现一个代码来做到这一点。我的问题是我想在不改变排列的情况下编辑变量 text

String text = " my font1 , font 2 ";   
Typeface font,font1;
font = Typeface.createFromAsset(getAssets(), "font.TTF");
font1 = Typeface.createFromAsset(getAssets(), "font1.TTF");
Spannable s = new SpannableString(text);
s.setSpan(new CustomTypefaceSpan("", font), curpos, endpos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new CustomTypefaceSpan("", font1), curpos, endpos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
.
.
.
.
//want to chage variable text here !

我引用了以下内容,但我没有得到解决方案。

Set color of TextView span in Android

Android: Coloring part of a string using TextView.setText()?

TextView with different textSize

最佳答案

尝试使用 SpannableStringBuilder类(class)。 “这是文本的类,其内容和标记都可以更改。”听起来您需要一个可变类。

不清楚您想如何更改文本,但我像这样使用 SpannableStringBuilder 在某些 html 文本的开头插入其他文本。一旦您有了字符串生成器对象,就有足够的方法可用于修改内容。

 Spanned spHtml = Html.fromHtml(myHtmlString, Html.FROM_HTML_MODE_LEGACY);
 SpannableStringBuilder sb = new SpannableStringBuilder(spHtml);
 sb.insert(0, "text to be inserted");

关于android - 我可以在 android 中更改跨度文本吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44183973/

相关文章:

java - 如果互联网连接丢失,则停止应用程序中的计时器运行

java - 使用 java.time/Java-8 根据语言环境从一周的第一天开始打印日历

android - 如何在Android中获取日期( Kotlin )

Android Navigation Drawer 应该垂直集中

android - 如何将 Facebook 应用所有权迁移到商务管理平台?

android - 如何在USB连接的设备上的Android Studio中调试应用程序升级

android - facebook sdk 权限不足,无法通过 Api 共享内容

java - 检测导航栏可见性

android - 服务\远程服务

android - 当用户使用不同的智能手机时,如何在 GCM/FCM 中交换 Registration_ID?