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