Ho i seguenti dati di input in String: "Hello # this # is # sample # text."Elimina caratteri da CharSequence espandibile
Imposta il colore di sfondo per tutti gli elementi tra # caratteri. Ecco quello che ho ottenuto finora:
public static CharSequence colorBackground(CharSequence text) {
Pattern pattern = Pattern.compile("#(.*?)#");
Spannable spannable = new SpannableString(text);
if(pattern != null)
{
Matcher matcher = pattern.matcher(text);
while(matcher.find())
{
int start = matcher.start();
int end = matcher.end();
CharacterStyle span = new BackgroundColorSpan(0xFF404040);
spannable.setSpan(span, start, end, 0);
}
}
return spannable;
}
impostazione dello sfondo opere di colori, ma hanno uno stile troppo caratteri segnaposto #. Come rimuoverli prima di restituire il risultato, perché il metodo ReplaceAll non esiste per CharSequence?
Io uso questa funzione per disegnare le righe di TextView in ListView. Si sente un po 'più lento nell'emulatore dopo aver aggiunto questa funzione di styling. Forse dovrei avvicinarmi in qualche altro modo, ad es. utilizzare un TextView personalizzato con la funzione di disegno personalizzato?
Grazie per il vostro tempo, Spannables è un po 'di confusione con cui lavorare all'inizio. Almeno funziona più velocemente di fromHtml. – joshas