2013-07-22 2 views
-1

변화하는 텍스트의 모든 단어의 색상을 변경하고 싶습니다. 어떻게해야합니까?안드로이드는 모든 문자열 색상을 변경합니다.

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

spannable 문자열을 사용할 수 있습니다. – Raghunandan

+0

을 사용하면 단어를 공백으로 분리하고 개별 단어에 스팬을 적용 할 수 있습니다. 수정 된 게시물을 확인하십시오. 동적 텍스트로 문자열을 대체하십시오. – Raghunandan

답변

0

더 간단한 방법 :

TextView.setText(Html.fromHtml("<some html color tag/>")); 
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++; 
} 

스냅 당신은 아마 각 단어의 색상을 변경하려면이 같은 (즉 spannable 사용) 기능을 사용할 수 있습니다

enter image description here

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; 
} 
관련 문제