На всякий случай вам интересно, как вы можете установить несколько разных размеров в одном текстовом виде, но используя абсолютный размер, а не относительный, вы можете достичь этого, используя AbsoluteSizeSpan
вместо RelativeSizeSpan
.
Просто получить размер в пикселях нужного размера текста
int textSize1 = getResources().getDimensionPixelSize(R.dimen.text_size_1);
int textSize2 = getResources().getDimensionPixelSize(R.dimen.text_size_2);
, а затем создать новый AbsoluteSpan
на основе текста
String text1 = "Hi";
String text2 = "there";
SpannableString span1 = new SpannableString(text1);
span1.setSpan(new AbsoluteSizeSpan(textSize1), 0, text1.length(), SPAN_INCLUSIVE_INCLUSIVE);
SpannableString span2 = new SpannableString(text2);
span2.setSpan(new AbsoluteSizeSpan(textSize2), 0, text2.length(), SPAN_INCLUSIVE_INCLUSIVE);
// let's put both spans together with a separator and all
CharSequence finalText = TextUtils.concat(span1, " ", span2);
Поскольку у меня нет достаточной репутации прокомментировать ответ Raghunandan, позвольте мне поделиться одним Гоча как отдельный ответ для тех, встретив этот вопрос сейчас, что дизайн материал из: Похоже, что Spannables не работают с параметром 'textAllCaps = true', установленным в представлении« »для применения параметра Spannable to. (см. здесь: http://stackoverflow.com/questions/29007746/button-settext-with-spannable-dosent-work-for-android-5-0-lollipop) – bairprogramming