Android – 两个句子,两个样式,一个TextView

我打算显示一个包含两个句子的TextView,我希望它们像这样一个接一个:

AAAAAA: BBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBB 

A …是第一个单词\句子的一部分,B …是第二个句子。

A …&B …的大小不是恒定的。

尝试这样做:

  <RelativeLayout style="@style/f13" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/first_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="AAAAAA: " /> <TextView style="@style/f15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" android:layout_toRightOf="@id/first_text" /> </RelativeLayout> 

但我得到了:

 AAAAAA: BBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBB 

我想要第二个(B …)的句子在第一个句子下面继续(A …)我应该加上那个句子A …&B …有不同的风格。

A的风格:

 <style name="f13"> <item name="android:typeface">sans</item> <item name="android:textSize">15dp</item> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/grey_dark_emperor</item> </style> 

B的风格:

 <style name="f15"> <item name="android:typeface">sans</item> <item name="android:textSize">17dp</item> <item name="android:textStyle">normal</item> <item name="android:textColor">@color/grey_dark_emperor</item> </style> 

有什么想法吗 ?

Solutions Collecting From Web of "Android – 两个句子,两个样式,一个TextView"

您可以尝试使用SpannableStringBuilder ,如下所示:

 String firstString = "AAAAAA: "; String secondString = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"; SpannableStringBuilder stringBuilder = new SpannableStringBuilder(firstString + secondString); stringBuilder.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, firstString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); stringBuilder.setSpan(new ForegroundColorSpan(Color.rgb(255, 0, 0)), firstString.length() + 1, firstString.length() + secondString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(stringBuilder); 

这将使第一句话是大胆的,第二句话是红色的。

您可以使用HTML标记通过单个文本视图来获得所需的效果。 检查这一点 , 这也是这个 。

你可以使用HTML来显示你的文字

 myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>")); 
 <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/first_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="AAAAAA: BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" /> </RelativeLayout> 

用这个作为xml。

通过单一的textview只有你将能够做到这一点。 你只需要在单个文本视图中追加两个string。

 textview.setText(first_text+":"+second_text); 

你把第二个文本的位置写成第一个文本的右边。

 android:layout_toRightOf="@id/first_text" 

所以根据我的知识,不可能在第一句的下面继续。它总是在第一文的右边写第二篇文章。