TextView中的多重对齐?

eme*_*ieu 20 android text-alignment android-2.2-froyo

我有一个像下面的TextView.我使用此代码为文本的一部分设置灰色.

// Prepare result text.
final String resultText = text + "\n\n" + dictionaryName;
final SpannableString styledResultText = new SpannableString(resultText);
styledResultText.setSpan(new ForegroundColorSpan(Color.GRAY), text.length() + 2, text.length() + 2 + dictionaryName.length(), 0);
resultTextView.setText(styledResultText);
Run Code Online (Sandbox Code Playgroud)

现在我想为它设置对齐.怎么做?Android没有任何span类用于对齐.我找不到像"AlignmentSpan"这样的东西.

在此输入图像描述

And*_*lva 50

虽然回答真的很晚,但我认为它至少可以帮到某些人.将其添加到您的代码中.

styledResultText.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE), 
text.length() + 2, text.length() + 2 + dictionaryName.length(), 
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

Alignment.ALIGN_OPPOSITE相当于右侧.

Alignment.ALIGN_NORMAL是左侧的等价物.

  • 这肯定应该是公认的答案!这也适用于通过Alignment.ALIGN_CENTER居中文本. (4认同)

Joh*_*hey 0

如果 resultText 始终右对齐,请向您的文本添加重力=“右”属性,resultTextView而不是尝试使用样式化的可跨越字符串右对齐文本。这是假设灰色文本位于与主文本不同的单独 TextView 中。

在结果(灰色)文本的 xml 中:

<TextView android:id="@+id/resultTextView" 
    android:gravity="right" 
    android:layout_width="fill_parent" />
Run Code Online (Sandbox Code Playgroud)