我想突出顯示TextView
並實現下面顯示的設計。 有誰知道如何使用TextView
來實現這個目標? 我從現有的Android應用程序中獲取此截圖。如何突出顯示Android中的TextView
通過使用此代碼我得到如下圖所示的結果,這不是我想要的:
sp.setSpan(new BackgroundColorSpan(color), start, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
我想突出顯示TextView
並實現下面顯示的設計。 有誰知道如何使用TextView
來實現這個目標? 我從現有的Android應用程序中獲取此截圖。如何突出顯示Android中的TextView
通過使用此代碼我得到如下圖所示的結果,這不是我想要的:
sp.setSpan(new BackgroundColorSpan(color), start, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
您需要使用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);
試試這個。這將工作。
請檢查我更新的問題,BackgroundColorSpan結果與我真正想要的不同。 – Tinashe
如何讓風格與UI分開? – russellhoff
@Tinashe你有沒有得到答案?上面的答案不能解決您對所需空白區域的問題。我有同樣的問題,一直沒有找到答案。 –
如果我理解正確,您想用淺色突出顯示文本?如果是這種情況,那麼只需更改顏色的透明度即可。例如:將前兩個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關於十六進制顏色的透明度。
來實現,這比我所做的要好,非常感謝。但它仍然不會像在圖像中那樣在句子之間留下空白區域。 – Tinashe
這已經在這裏回答http://stackoverflow.com/questions/2120035/highlight-text-in-textview-or-webview –
@BidhanA請檢查我更新的問題, – Tinashe