TextView con diferente textSize

¿Es posible establecer diferentes TextSize en un TextView? Sé que puedo cambiar el estilo del texto usando:

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

Sé que el rango comienza … fin del texto Quiero cambiar el tamaño. Pero, ¿qué puedo usar como arg0 y arg3 ?

tratar

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

Sé que es muy tarde para responder, pero la gente todavía podría tener la misma pregunta. Incluso he luchado mucho en esto. Supongamos que tiene estas dos cadenas dentro de su archivo strings.xml

  You will need a to complete this assembly screwdriver, hammer, and measuring tape 

Ahora necesita definir dos estilos para ellos dentro de su style.xml con diferentes textSize

   

Ahora, desde su archivo Java, necesita usar la herramienta spannable para cargar estos dos estilos y cadenas en un solo texto.

 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); 

A continuación se muestra el método formatStyles que devolverá la cadena formateada después de aplicar el estilo

 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; } 

Prueba con AbsoluteSizeSpan

 snackbarText.setSpan(new AbsoluteSizeSpan(fontsize, true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

El código completo es:

 SpannableStringBuilder snackbarText = new SpannableStringBuilder(); snackbarText.append("Your text"); snackbarText.setSpan(new AbsoluteSizeSpan(fontsize, true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); Snackbar.make(getCurrentFocus(), snackbarText, Snackbar.LENGTH_LONG).setAction("Action", null).show();`