2012-10-11 58 views
2

我有一個進度對話框,我想顯示象下面這樣兩種顏色文本的進度對話框消息

  1. 下載
  2. 解壓

我可以顯示「1.下載短信「綠色和」2.減壓「紅色。我的代碼是

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

回答

4

看看這段代碼。

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

謝謝,這是我想要的。 –

4

我認爲你可以在設置中的消息中使用HTML - 它適用於警報和文本的意見 - 我還沒有嘗試過的進度對話框但儘量it.To這裏給您一個想法的一些代碼 - 只是修改,以適合你的要求

基本上

在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))); 
+0

不工作,它顯示R.string.downloading等int值,而不是彩色文本 –

+0

嘿,讓我檢查 - 是啊它需要一個getstring函數 – Slartibartfast