Android的Linkify链接textColor忽略,CSS样式覆盖可能?

我在我的应用程序中使用Linkify ,并访问链接文本显示为深紫色。 我的总体布局背景颜色是深蓝色,所以这是不可能读取。 文本设置为白色,但访问链接显示为深紫色。 我如何覆盖这个?

 <TextView android:text="Website:" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14dip" android:paddingBottom="2dip" android:background="#ffffff" android:textColor="#577dbe" /> <TextView android:text="http://www.mysite.com/" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="12dip" android:paddingBottom="6dip" android:textColor="#ffffff" android:id="@+id/contactWeb1" /> 

Solutions Collecting From Web of "Android的Linkify链接textColor忽略,CSS样式覆盖可能?"

原来是一个简单的解决scheme

但是你将无法做到visited / not visited区别。

  TextView contactWeb1 = (TextView) findViewById(R.id.contactWeb1); noteView.setText("http://www.blablaasd.com/"); noteView.setLinkTextColor(Color.red); //for example Linkify.addLinks(noteView, Linkify.ALL); 

试图去拜访各州

使用

  noteView.setLinkTextColor(getResources().getColorStateList(R.color.colors)); 

代替

  noteView.setLinkTextColor(Color.red); 

res/创build文件夹color并在res/color/

colors.xml

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

我尽我所能去赶上访问的国家。 我尝试了select器可以采取的所有状态。

我可能会错过如果你发现,分享(:


替代解决scheme (仅适用于html链接)

以编程方式设置字体颜色

缺点 (要小心这一点)

  • 你将不得不赶上是否被访问(这是可行的)

    这意味着您不覆盖已访问的链接function。

CODE

 TextView contactWeb1 = (TextView) findViewById(R.id.contactWeb1); String desc = "<font color=\"red\"><a href='http://www.mysite.com/'>Visit my site</a></font>"; contactWeb1.setText(Html.fromHtml(desc)); contactWeb1.setMovementMethod(LinkMovementMethod.getInstance()); 

加:

 android:textColor="#ffffff" 

到XML中的TextView元素解决问题…似乎覆盖文本颜色覆盖其他与元素相关的颜色样式

看到这个问题:

Android文本视图颜色在禁用时不会更改

我试了你的代码,我的TextView的颜色没有改变。 那么你的解决scheme是将一个onClick监听器添加到TextView中,并设置其中的TextView的颜色。 所以无论什么时候点击文本,它将被设置为您指定的颜色。

我使用Linkify遇到了同样的问题。 您可以改为使用LinkMovementMethod ,并将您的文本转换为SpannableString 。

 TextView contactWeb1 = (TextView) findViewById(R.id.contactWeb1); SpannableString str = SpannableString.valueOf(contactWeb1); str.setSpan(new URLSpan(contactWeb1.getText()), 0, str.length() -1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); contactWeb1.setMovementMethod(LinkMovementMethod.getInstance());