2015-05-27 136 views
1

我想突出顯示TextView並實現下面顯示的設計。 有誰知道如何使用TextView來實現這個目標? 我從現有的Android應用程序中獲取此截圖。如何突出顯示Android中的TextView

enter image description here

通過使用此代碼我得到如下圖所示的結果,這不是我想要的:

sp.setSpan(new BackgroundColorSpan(color), start, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

enter image description here

+0

這已經在這裏回答http://stackoverflow.com/questions/2120035/highlight-text-in-textview-or-webview –

+0

@BidhanA請檢查我更新的問題, – Tinashe

回答

2

您需要使用Spannable字符串:

TextView textView = (TextView)findViewById(R.id.textView1); 
String text = "Test"; 
Spannable spanText = Spannable.Factory.getInstance().newSpannable(text); 
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
textView.setText(spanText); 

試試這個。這將工作。

+0

請檢查我更新的問題,BackgroundColorSpan結果與我真正想要的不同。 – Tinashe

+0

如何讓風格與UI分開? – russellhoff

+0

@Tinashe你有沒有得到答案?上面的答案不能解決您對所需空白區域的問題。我有同樣的問題,一直沒有找到答案。 –

1

如果我理解正確,您想用淺色突出顯示文本?如果是這種情況,那麼只需更改顏色的透明度即可。例如:將前兩個FF 0xFFFFFF00更改爲80(50%透明度)。所以,它看起來像0x80FFFF00

TextView textView = (TextView)findViewById(R.id.textView1); 
String text = "Your String"; 
Spannable spanText = Spannable.Factory.getInstance().newSpannable(text); 
spanText.setSpan(new BackgroundColorSpan(0x80FFFF00), 14, 19,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
textView.setText(spanText); 

這裏有一個相關的thread關於十六進制顏色的透明度。

+0

來實現,這比我所做的要好,非常感謝。但它仍然不會像在圖像中那樣在句子之間留下空白區域。 – Tinashe

相關問題