Android进度对话框消息中的两种文本颜色

3

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

  1. 下载中
  2. 解压中

我能否将“1. 下载中”显示为绿色,“2. 解压中”显示为红色?我的代码如下:

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

5

看一下这段代码。

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);

4

我认为您可以在设置消息中使用HTML- 对于Alert和text视图有效- 我没有尝试过progress对话框,但可以尝试。以下是一些代码,可供参考 - 只需根据您的要求进行修改即可。

基本上

在您的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 等整数值,而不是彩色文本。 - sHa Xahid
哎呀,让我检查一下 - 是的,它需要一个getstring函数。 - Vrashabh Irde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接