不同的文本按钮

时间:2012-08-30 09:27:38

标签: android button text-formatting

我想创建一个按钮。 此按钮包含一个大小为22像素的字母和右侧的一些字母,大小为16像素。

像这样:
 enter image description here

我怎样才能做到这一点?

目前我有这个:

private void setText(Button btn, String text, String underText) {
    Spannable span = new SpannableString(text + "\n" +  underText);

    btn.setText(span);
}

2 个答案:

答案 0 :(得分:19)

您可以在Spannable中应用AbsoluteSizeSpan,以便在相同的内容中制作不同大小的文字。

 private void setText(Button btn, String text, String underText) {

    Spannable span = new SpannableString(text + "\n" +  underText);
    span.setSpan(new AbsoluteSizeSpan(fontSize), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    btn.setText(span);
}

答案 1 :(得分:7)

您可以通过在字符串资源中使用 html 内容来实现它,而不是通过代码完成。例如:

定义字符串资源:

<string name="tmp"><font size="30">2</font>abc</string>

并将其应用于按钮的文字:

android:text="@string/tmp"