【问题标题】:Two colors of text in Android progress dialog messageAndroid进度对话框消息中的两种颜色文本
【发布时间】:2012-10-11 06:04:54
【问题描述】:

我有一个进度对话框,我想显示如下文本消息

  1. 正在下载
  2. 解压

我可以用绿色显示“1. 正在下载”,用红色显示“2. 解压缩”吗?我的代码在哪里

mProgressDialog.setMessage("1. Downloading \n 2. Decompressing");

【问题讨论】:

    标签: android textview progressdialog


    【解决方案1】:

    看看这段代码。

    final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");
       final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158)); 
    
       // Span to set text color to some RGB value
       final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); 
    
       // Span to make text bold
       sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
    
       // Set the text color for first 4 characters
       sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
    
       // make them also bold
       yourTextView.setText(sb);
    

    【讨论】:

      【解决方案2】:

      我认为您可以在设置消息中使用 HTML - 它适用于警报和文本视图 - 我还没有尝试过进度对话框,但尝试了它。为了让您了解这里的一些代码 - 只需修改它以满足您的要求

      基本上

      在你的 strings.xml 中

       <string name="downloading"><![CDATA[<font color="green">1.Downloading</font><br/>]]></string>
       <string name="decompressing"><![CDATA[<font color="red">2.Decompressing</font><br/>]]></string>
      

      然后调用

      mProgressDialog.setMessage(Html.fromHtml(getString(R.string.downloading))+""+ Html.fromHtml(getString(R.string.decompressing)));
      

      【讨论】:

      • 不工作,它显示的是 R.string.downloading 等的 int 值,而不是彩色文本
      • 让我检查一下 - 是的,它需要一个 getstring 函数
      猜你喜欢
      • 1970-01-01
      • 2012-05-18
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多