Android 按钮中的不同文本大小

Android 按钮中的不同文本大小,android,button,text-formatting,Android,Button,Text Formatting,我想创建一个按钮。 此按钮包含一个22像素大小的字母,其右侧的一些字母大小为16像素 像这样: 我怎样才能做到这一点 目前,我有以下几点: private void setText(Button btn, String text, String underText) { Spannable span = new SpannableString(text + "\n" + underText); btn.setText(span); } 您可以在span中应用Absolut

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

像这样:

我怎样才能做到这一点

目前,我有以下几点:

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

    btn.setText(span);
}

您可以在span中应用
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);
}

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

定义字符串资源:

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

锁定在这一点上,我相信与html相关的维度是以像素为单位的。当这一点起作用时,它的速度非常慢。。。如果您经常更新文本,或者在视图层次结构中有很多这样的情况,请不要使用它SpannabelStringBuilders API可能不太好,但我尝试将此解决方案用于按钮,但它不起作用
android:text="@string/tmp"