2012-05-04 34 views
14

Tôi đang phân lớp ClickableSpan để tùy chỉnh kiểu văn bản cho các liên kết trong TextView của tôi.TextView ClickableSpan kiểu dáng cho trạng thái nhấn

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

Tôi muốn thay đổi kiểu khi ở trạng thái nhấn hoặc người dùng chạm vào liên kết. (như a:hover trong css) nhưng tôi không thể tìm ra cách để có được trạng thái hiện tại trong updateDrawState.

Có cách nào để xử lý việc này không? Nếu tôi không thể thay đổi kiểu văn bản, tôi muốn có thể thay đổi màu nền ít nhất.

EDIT như chỉ bằng một bình luận, bạn có thể tìm thấy câu trả lời ở Change the text color of a single ClickableSpan when pressed without affecting other ClickableSpans in the same TextView

+1

Bạn có tìm thấy câu trả lời không? Làm thế nào bạn kết thúc việc này? – Ravi

+1

Đối với bất cứ ai có thể giúp đỡ trong tương lai, hãy xem http://stackoverflow.com/a/20905824/1646326 –

Trả lời

9

Đối với việc thay đổi màu nền tôi đã làm

testTextView.setHighlightColor(Color.BLUE); 

trên TextView.

Nhưng có cơ hội thay đổi màu chữ sẽ tốt hơn cho tôi.

+0

Đây không phải là những gì tôi đã hỏi, nhưng tôi đã chấp nhận câu trả lời này vì đó là câu trả lời duy nhất. Giải pháp thực sự là http://stackoverflow.com/a/20905824/1646326 – dasony

+0

Lần tới đừng ngần ngại đăng liên kết trong câu trả lời thực tế và đánh dấu là đúng. Nó sẽ giúp người khác bằng cách làm cho câu trả lời rõ hơn. –

+0

Điều này khắc phục được sự cố của tôi, cảm ơn! :) –

Các vấn đề liên quan