2016-12-01 33 views
1

我想刪除用戶點擊textview時的高亮顏色。所以我可以改變所有的顏色並使其成功,但是當我點擊textview時它不會打開鏈接。如果我刪除自動鏈接它的工作...如何從超鏈接中刪除高亮顏色[Android]

所以我的問題是如何刪除高亮而不使用自動鏈接?

XML文件:

<TextView 
     android:id="@+id/tv1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="Customer Service" 
     android:textAlignment="center" 
     android:textSize="15sp" 
     android:clickable="true" 
     android:linksClickable="true" 
     android:autoLink="web" 
     android:background="@drawable/about_us_selector" 
     android:textColor="@color/about_us_color" /> 

背景繪製:

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@color/light_gray" 
     android:state_pressed="true"/> 
</selector> 

顏色:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
     android:color="#ffff0000"/> <!-- pressed --> 
    <item android:state_focused="true" 
     android:color="#ff0000ff"/> <!-- focused --> 
    <item android:color="#ff000000"/> <!-- default --> 
</selector> 

的Java:

String webTv1 = "<a href='http://www.google.com'> Customer Service </a>"; 
    tv1 = (TextView) findViewById(R.id.tv1); 
    tv1.setClickable(true); 
    tv1.setText(Html.fromHtml(webTv1)); 
    //set user name in blue color and remove underline from the textview 
    Spannable spannedTv1 = Spannable.Factory.getInstance().newSpannable(
      Html.fromHtml(webTv1)); 
    Spannable processedText = removeUnderlines(spannedTv1); 
    if (tv1 != null) { 
     tv1.setText(processedText); 
     tv1.setMovementMethod(LinkMovementMethod.getInstance()); 
    } 
} 

public static Spannable removeUnderlines(Spannable p_Text) { 
    URLSpan[] spans = p_Text.getSpans(0, p_Text.length(), URLSpan.class); 
    for (URLSpan span : spans) { 
     int start = p_Text.getSpanStart(span); 
     int end = p_Text.getSpanEnd(span); 
     p_Text.removeSpan(span); 
     span = new URLSpanNoUnderline(span.getURL()); 
     p_Text.setSpan(span, start, end, 0); 
    } 
    return p_Text; 
} 

回答

4

最後,我設法去除亮點:

添加另一種顏色/ highlight.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#00ffffff"/> 
</selector> 

然後,定義顏色在您的xml文件:

android:textColorHighlight="@color/hightlight.xml" 

在此之前,從XML文件中刪除autoLink ...