TextView с различным textSize

Возможно ли установить другой textSize в одном TextView? Я знаю, что я могу изменить стиль текста, используя:

TextView textView = (TextView) findViewById(R.id.textView); Spannable span = new SpannableString(textView.getText()); span.setSpan(arg0, 1, 10, arg3); textView.setText(span) 

Я знаю, что начало диапазона … конец текста. Я хочу изменить размер. Но что я могу использовать в качестве arg0 и arg3 ?

Solutions Collecting From Web of "TextView с различным textSize"

пытаться

 span.setSpan(new RelativeSizeSpan(0.8f), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

Я знаю очень поздно, чтобы ответить, но у людей все еще может быть один и тот же вопрос. Даже я много боролся с этим. Предположим, что у вас есть эти две строки внутри файла strings.xml

  <string name="my_text">You will need a to complete this assembly</string> <string name="text_sub1">screwdriver, hammer, and measuring tape</string> 

Теперь вам нужно определить два стиля для вашего стиля. Xml с другим textSize

 <style name="style0"> <item name="android:textSize">19sp</item> <item name="android:textColor">@color/standout_text</item> <item name="android:textStyle">bold</item> </style> <style name="style1"> <item name="android:textSize">23sp</item> <item name="android:textColor">@color/standout_light_text</item> <item name="android:textStyle">italic</item> </style> 

Теперь из вашего файла Java вам нужно использовать spannable для загрузки этих двух стилей и строк в один текстовый файл

 SpannableString formattedSpan = formatStyles(getString(R.string.my_text), getString(R.string.text_sub0), R.style.style0, getString(R.string.main_text_sub1), R.style.style1); textView.setText(formattedSpan, TextView.BufferType.SPANNABLE); 

Ниже приведен метод formatStyles, который вернет форматированную строку после применения стиля

 private SpannableString formatStyles(String value, String sub0, int style0, String sub1, int style1) { String tag0 = "{0}"; int startLocation0 = value.indexOf(tag0); value = value.replace(tag0, sub0); String tag1 = "{1}"; int startLocation1 = value.indexOf(tag1); if (sub1 != null && !sub1.equals("")) { value = value.replace(tag1, sub1); } SpannableString styledText = new SpannableString(value); styledText.setSpan(new TextAppearanceSpan(getActivity(), style0), startLocation0, startLocation0 + sub0.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (sub1 != null && !sub1.equals("")) { styledText.setSpan(new TextAppearanceSpan(getActivity(), style1), startLocation1, startLocation1 + sub1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } return styledText; } 

Вы всегда можете использовать класс Html для синтаксического анализа строки с разными стилями html формата: вы можете попробовать что-то вроде:

 textView.setText(Html.fromHtml("<font size=\"5\" face=\"arial\" color=\"red\">" + "This paragraph is in Arial, size 5, and in red text color." + "</font>" + ...));