Autore Topic: Cambiare colore a alcuni caratteri  (Letto 442 volte)

Offline giannit

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s4
  • Sistema operativo:
    Android
Cambiare colore a alcuni caratteri
« il: 20 Marzo 2014, 19:37:12 CET »
0
Avrei bisogno di sapere se é possibile modificare il colore di alcuni caratteri. In pratica, vorrei che se io ad esempio inserisco in una edittext "a" il carattere a venga scritto con il nero e se inserisco "b" invece venga sanvato con il rosso.Una specie di formattazione condizionale che usavo con excel.è possibile una cosa simile con android?

Inviato dal mio GT-H9500 utilizzando Tapatalk


Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Cambiare colore a alcuni caratteri
« Risposta #1 il: 20 Marzo 2014, 21:03:52 CET »
0
Credo sia possibile, magari un po' macchinoso.

Dovresti prima di tutto definire un TextWatcher in modo da monitorare la stringa inserita nell'EditText.
A quel punto, puoi usare la classe ForegroundColorSpan per colorare pezzi della stringa inserita.

Offline giannit

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s4
  • Sistema operativo:
    Android
Re:Cambiare colore a alcuni caratteri
« Risposta #2 il: 20 Marzo 2014, 21:16:29 CET »
0
Effettivamente dopo aver postato ho effettuato ulteriori ricerche e pare che con spannable e foreground sia possibile, sto cercando di capirne il funzionamento. Il mio scopo nello specifico, mi interesserebbe avere rosso se imserisco M e giallo se metto R. Spero che ci sia qualche tutorial di esempio o qualcuno che mi dia una mano qui.

Inviato dal mio GT-H9500 utilizzando Tapatalk
« Ultima modifica: 20 Marzo 2014, 21:18:12 CET da giannit »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Cambiare colore a alcuni caratteri
« Risposta #3 il: 20 Marzo 2014, 21:54:52 CET »
0
Con questa funzione (che ho scritto più o meno a memoria) dovresti riuscire a colorare tutte le M in una certa stringa.

Codice (Java): [Seleziona]
private CharSequence highlight(Charsequnce input){

    if(TextUtils.isEmpty(input)){
        return "";
    }

    SpannableStringBuilder spanned = new SpannableStringBuilder(input);

    int index = input.indexOf("M");
    while (index >= 0) {
        spanned.setSpan(new ForegroundColorSpan(Color.BLUE), index, index + 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        index = input.indexOf("M", index + 1);
    }

    return spanned;
}

Ora non ti resta che usare un TextWatcher e collegare tutti i fili. ;)
« Ultima modifica: 20 Marzo 2014, 21:56:23 CET da Ricky` »

Offline giannit

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s4
  • Sistema operativo:
    Android
Re:Cambiare colore a alcuni caratteri
« Risposta #4 il: 21 Marzo 2014, 16:58:58 CET »
0
Ciao, prima cosa, grazie per l'aiuto. Nel rileggere il mio primo post, non ho specificato che i caratteri eventualmente da evidenziare con altra colorazione mi vengono mostrati su una listview che preleva i dato da un DB. Non so se é possibile usare queste istruzioni da te menzionate.

Inviato dal mio GT-H9500 utilizzando Tapatalk