当前位置: 首页 > 知识库问答 >
问题:

Android从Java或XML更改TextView上的特定单词

秦联
2023-03-14

既然Android的XML布局都是矩形的,我怎么能只拥有文本视图的某些部分,这些部分具有不同的字体大小和参数呢?

在下面的示例中,时间(灰色且字体大小较小)总是在文本的末尾。我不知道如何在XML中重现这一点。如果我将两个不同文本视图中的文本分开,并且两者的宽度都是包装内容,它将只出现在TextView布局的右侧(在主消息的每一行的右侧,而不是末尾)。

是否可以使用XML进行布局配置,或者我需要使用JAVA以编程方式进行配置?如何使用Java更改文本视图某些部分的参数?

有两个文本视图和包装内容(不是我想要的):

共有1个答案

鄢飞鸾
2023-03-14

我从你的问题中了解到的是你想要一个单一的文本视图,里面有多种样式。要做到这一点,你可以这样做:

 SpannableStringBuilder text = new SpannableStringBuilder(); // a spannable string builder

    text.append("your friend "); // appending first text
    SpannableString fname = new SpannableString("Joana"); //making a span that would have different style
    fname.setSpan(new StyleSpan(Typeface.BOLD), 0, fname.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); // set different style
    text.append(fname); // append value
    text.append(" his sending you a message      ");
    SpannableString time_ago = new SpannableString("41 min ago"); //another span
    time_ago.setSpan(new RelativeSizeSpan(.7f), 0, time_ago.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    time_ago.setSpan(new ForegroundColorSpan(Color.GRAY), 0, time_ago.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    text.append(time_ago); // append value
    
    textView.setText(text);

XML:

<TextView
    android:padding="5sp"
    android:textColor="@color/black"
    android:textSize="24sp"
    android:gravity="start"
    android:id="@+id/tvtest"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
 类似资料:
  • 我试图弄清楚如何更改JTable中一行中单词的颜色。 例如,这是我的句子,在一行中; dmpsrv日志“2013年3月12日星期二15:33:03”(格林尼治标准时间)(DB=SS@2)pid=662node=“B2-W4”执行时间=1(s) 每一行的结构都是相同的,我想用粗体显示用户名。 但是我不知道我该怎么做?有人给点诡计吗? 谢谢

  • 问题内容: 应用程序正在运行,但此处未得到更新是相关代码。 activity_picker_dashboard.xml 这是layout_header.xml 这是我的模型ProfileResponse.java 最后是我的活动 请提出解决方案。我已经尝试了一段时间了。PS:我也在用黄油刀。 问题答案: 问题在于如何将数据绑定布局与常规布局混合在一起。 如果要包括常规布局中的数据绑定布局,则需要找

  • 我只是做了类似的事情,在本例中,代码工作,我只想将单词“ipsum”更新为“hello world”: 但是如果我试图改变文本样式,比如粗体,甚至改变字体颜色,所有的“运行”都会改变,不仅仅是我搜索的世界。我必须做什么来改变字体样式,只有单词“IPSUM”在示例文本?

  • 问题内容: 所以我想补充superscipt /标到一个TextView,基本上是试图使一小部分显示为1 / 2。不知道我要去哪里错,而且我是Android的新手,因此感谢您的帮助。谢谢! 问题答案: 试试吧。简单而精确: 注意:您可能需要给文本视图一些高度,否则输出将被剪切。 或者,您可以尝试使用此方法,其中数字大小较小:

  • 问题内容: 我正在Qt和C ++中开发一个Android应用程序。我的整个应用程序都是纵向的,但是当我播放视频时,我想将方向更改为横向,并且在视频结束后应该再次更改为纵向。 因此,问题是如何在Android的Qt / C ++应用程序中将屏幕设置为横向或纵向模式。 问题答案: 可以使用Java函数更改Android上的屏幕方向,因此您应该从应用中调用Java函数。要在Qt Android应用程序中

  • 在我试图开发的应用程序中,我有一个布局,带有带按钮的CardView。每个按钮显示相同的布局,但根据每张卡显示不同的数据。我尝试了下面的方法,但不断出现致命的异常。 检查此处的按钮1(特色车间布局) 主要活动。JAVA 登记表。JAVA 我已在注册表格中声明为。java,我想在这里显示详细信息。当从访问它以更改值时,我得到以下异常。 致命异常:主进程:com.example.intodarknes