from stackoverflow.com:

        
  1. SpannableStringBuilderbuilder=newSpannableStringBuilder();
  2. Stringred="thisisred";
  3. SpannableStringredSpannable=newSpannableString(red);
  4. redSpannable.setSpan(newForegroundColorSpan(Color.RED),0,red.length(),0);
  5. builder.append(redSpannable);
  6. Stringwhite="thisiswhite";
  7. SpannableStringwhiteSpannable=newSpannableString(white);
  8. whiteSpannable.setSpan(newForegroundColorSpan(Color.WHITE),0,white.length(),0);
  9. builder.append(whiteSpannable);
  10. Stringblue="thisisblue";
  11. SpannableStringblueSpannable=newSpannableString(blue);
  12. blueSpannable.setSpan(newForegroundColorSpan(Color.BLUE),0,blue.length(),0);
  13. builder.append(blueSpannable);
  14. mTextView.setText(builder,BufferType.SPANNABLE);

or

        
  1. yourTextView.setText(Html.fromHtml("<FONTCOLOR=\"#80776b\">Firstcolor</Font>"+"<FONTCOLOR=\"#80776b\">Secondcolor</Font>"));

or

        
  1. Stringtext="Thistextiswhite.<fontcolor=\"blue\">Thistextisblue.</font>";
  2. textView.setText(Html.fromHtml(text),BufferType.SPANNABLE);

还有人封装了一下API:

I created a class like this:

        
  1. importandroid.text.SpannableStringBuilder;
  2. importandroid.text.style.CharacterStyle;
  3. publicclassStyleableSpannableStringBuilderextendsSpannableStringBuilder{
  4. publicStyleableSpannableStringBuilderappendWithStyle(CharacterStylec,CharSequencetext){
  5. super.append(text);
  6. intstartPos=length()-text.length();
  7. setSpan(c,startPos,length(),0);
  8. returnthis;
  9. }
  10. publicStyleableSpannableStringBuilderappendWithStyle(CharacterStyle[]c,CharSequencetext){
  11. super.append(text);
  12. intstartPos=length()-text.length();
  13. for(CharacterStylec1:c)
  14. setSpan(c1,startPos,length(),0);
  15. returnthis;
  16. }
  17. }

This allows me to do things like this:

        
  1. privatevoidbuildTickerItem(DelayedQuoteServiceObjecto)
  2. {
  3. DoublelastPrice=Double.parseDouble(o.getValue("LastPrice"));
  4. DoubledayChange=Double.parseDouble(o.getValue("DayChange"));
  5. DoublepercentChange=Double.parseDouble(o.getValue("PercentDayChange"))/100;
  6. if(o.isIndex()==true)
  7. {
  8. tickerTapeData.appendWithStyle(newStyleSpan(Typeface.BOLD),o.getDisplayName());
  9. tickerTapeData.append(""+indexFormat.format(lastPrice)+"(");
  10. if(dayChange>=0)
  11. tickerTapeData.appendWithStyle(newForegroundColorSpan(Colours.getTickerPositive()),indexFormat.format(dayChange));
  12. else
  13. tickerTapeData.appendWithStyle(newForegroundColorSpan(Color.RED),indexFormat.format(dayChange));
  14. }
  15. else
  16. {
  17. tickerTapeData.appendWithStyle(newStyleSpan(Typeface.BOLD),o.ticker);
  18. tickerTapeData.append("@"+dollarFormat.format(lastPrice)+"(");
  19. if(dayChange>=0)
  20. tickerTapeData.appendWithStyle(newForegroundColorSpan(Colours.getTickerPositive()),dollarFormat.format(dayChange));
  21. else
  22. tickerTapeData.appendWithStyle(newForegroundColorSpan(Color.RED),dollarFormat.format(dayChange));
  23. }
  24. tickerTapeData.append("/");
  25. if(dayChange>=0)
  26. tickerTapeData.appendWithStyle(newForegroundColorSpan(Colours.getTickerPositive()),percentFormat.format(percentChange));
  27. else
  28. tickerTapeData.appendWithStyle(newForegroundColorSpan(Color.RED),percentFormat.format(percentChange));
  29. tickerTapeData.append(")");
  30. }

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android dpi DisplayMetrics
  2. 选择图文表
  3. Android 上下滚动的新闻效果
  4. [android]android自动化测试十之单元测试
  5. Android之十三图片2D翻转
  6. android 按钮的四种点击事件
  7. mono android 非UI线程操作UI线程
  8. android使用keystore打包错误解决方法
  9. Android App: 按键识别
  10. **android studio 编写淘宝界面## 标题**