2012-05-04 49 views
14

我是ClickableSpan的子類來自定義TextView中鏈接的文本樣式。TextView按下狀態的ClickableSpan樣式

private static class LinkSpan extends ClickableSpan { 
    @Override 
    public void onClick(View widget) { 
     // code... 
    } 

    @Override 
    public void updateDrawState(TextPaint ds) { 
     super.updateDrawState(ds); 
     ds.setUnderlineText(false); 
     ds.setTypeface(Typeface.create(ds.getTypeface(), Typeface.BOLD)); 
     ds.setColor(0xff336699); 
    } 
} 

我想在按下狀態或用戶觸摸鏈接時更改樣式。 (像在css a:hover),但我不能找出一種方式來獲取updateDrawState當前狀態。

有什麼辦法可以解決這個問題嗎?如果我無法更改文本樣式,我希望至少能夠更改背景顏色。

編輯爲指向的評論,你可以找到在Change the text color of a single ClickableSpan when pressed without affecting other ClickableSpans in the same TextView

+1

您是否找到答案?你怎麼最終這樣做? – Ravi

+1

對於這可能有助於未來的人,請看看這個http://stackoverflow.com/a/20905824/1646326 –

回答

9

答案要更改背景顏色我在TextView的那樣

testTextView.setHighlightColor(Color.BLUE); 

但有機會改變文字顏色對我來說會更好。

+0

這不是我問的,但我接受了這個答案,因爲它是唯一的答案。真正的解決方案是在http://stackoverflow.com/a/20905824/1646326 – dasony

+0

下次不要害羞發佈鏈接的實際答案,並標記爲正確的。通過讓答案更加明顯,這將有助於他人。 –

+0

這解決了我的問題,謝謝! :) –