-1

変化するテキストのすべての単語の色を変更したいと思います。これどうやってするの?

selected.setText( "ID".Color.RED + "data".Color.BLUE);
4

3 に答える 3

1

おそらく、このような関数(スパン可能を使用する)を使用して、各単語の色を変更できます

public Spannable getColoredStringSpannable(String text, int color,
        int from, int to) {

    Spannable WordtoSpan = new SpannableString(text);
    WordtoSpan.setSpan(new ForegroundColorSpan(color), from, to,
            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    return WordtoSpan;
}
于 2013-07-22T12:02:43.823 に答える
0

使用できますSpannableString

SpannableString ss1=  new SpannableString("ID"); 
ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, ss1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
selected.append(ss1);
SpannableString ss2=  new SpannableString("data"); 
ss2.setSpan(new ForegroundColorSpan(Color.BLUE), 0, ss2.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
selected.append(ss2);

単語をスペースで分割し、スパンを単語に設定できます。

例 :

TextView _tv = (TextView) findViewById( R.id.tv );
int[] color ={Color.BLUE,Color.RED,Color.GREEN};
String s =" My Dynamic Text"; 
String split[] = s.split("\\s");
int j=0;
for(int i=1;i<split.length;i++)
{
    System.out.println(split[i]);
    SpannableString ss2=  new SpannableString(split[i]);     
    ss2.setSpan(new ForegroundColorSpan(color[j]), 0, ss2.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    _tv.append(ss2);
    _tv.append(" ");
    j++;
}

スナップショット

ここに画像の説明を入力

于 2013-07-22T11:53:36.970 に答える