我想突出显示(更改颜色)字符串中的单个单词,然后在一段随机时间之后我想更改下一个单词颜色。
我知道如何更改子字符串的颜色,但我想在运行时更改并继续更改下一个字的颜色。
请求帮助
`@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
String coloredString;
String myStr[] = myStrList.get(position).split("-");
for(int i=0; i<myStr.length;i++){
if(position==selectionRowIndex){
if(i==selectionWordIndex){
String colorWord = "<font color='#EE0000'>"+myStr[i]+"</font> ";
coloredString+=colorWord;
}else{
coloredString+=myStr[i];
}
}else{
coloredString+=myStr[i];
}
}
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.txtStr = (TextView) convertView.findViewById(R.id.text_Str);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtStr .setText(Html.fromHtml(coloredString));
答案 0 :(得分:3)
创建一个Spannable对象,通过SpannableString设置其文本。
Spannable spanobj = new SpannableString("word to set color");
spanobj.setSpan(new ForegroundColorSpan(Color.WHATEVER), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
您可以使用它来设置textview.setText(spanobj);
上的文本将0,4(开始索引,结束索引)循环为5,7,并更新视图以更多地为字符串着色。 0,4会设置'word'的颜色 5,7应该设置颜色等等......