Ho scritto una biblioteca durante il fine settimana che gestisce questo, l'ho chiamato uno RichTextView.
La libreria consente di formattare un intervallo di testo (renderlo in grassetto, sottolineato, corsivo, combinazione, ecc.) E colorarlo (colore del testo e evidenziazione). Nella prossima versione ho intenzione di prevedere font personalizzati e così pure.
Per utilizzarlo è semplice, basta aggiungere il seguente dipendenza al file Gradle:
compile 'com.androidessence.lib:richtextview:1.0.1'
Ora, diciamo che si vuole fare i primi quattro caratteri in grassetto, si può semplicemente fare la seguente chiamata:
Si noti che il parametro di indice finale non è compreso, quindi dicendo (0 -> 4) siamo in realtà indici in grassetto (0 -> 3).
Se volete fare entrambe le cose grassetto e sottolineato, utilizzare un EnumSet:
myRichTextView.formatSpan(0, 4, EnumSet.of(RichTextView.FormatType.BOLD, RichTextView.FormatType.UNDERLINE));
Per le ultime informazioni si prega di consultare il repository Github legata sopra, anche se cercherò di aggiornare questa risposta qualsiasi momento diventa obsolete.
Bella risposta, SpannableString è uno strumento davvero potente per questo. Sono stato ispirato da quella classe per creare una libreria RichTextView che utilizza SpannableString sotto il cofano ma semplifica l'utilizzo per gli sviluppatori: http://stackoverflow.com/a/36404986/3131147 – AdamMc331