Android - 设置超链接文本的选择颜色

Android - Set selection color for hyperlink text

我已经使用 android:textColorLink 更改了超链接文本的文本颜色。现在 当用户点击它时,我必须设置另一种颜色。我试过以下但没有改变。

android:textColorHighlight="@android:color/darker_gray"

如何为超链接文本设置选择颜色?提前致谢

此属性android:textColorHighlight 用于定义您select 剪切或复制文本时的颜色。 您可以使用颜色 selector 并将状态与您的状态相关联。 示例:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item color="@color/blue"
          android:state_activated="false"/>

    <item color="@color/red"
          android:state_activated="true"/>
</selector>

点击您的 link 后,为您的州设置一个标志。

您可以使用 setLinkTextColor 设置为 ColorStateList 以在 xml 或 java 代码中获得效果。

link_color.xml

<?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"/>
    <item android:state_selected="true" android:color="#ffff0000"/>
    <item android:color="#ff0000ff"/>

</selector>

然后在您的java代码中

TextView textView = (TextView) findViewById(R.id.text_link);
textView.setLinkTextColor(getResources().getColorStateList(R.color.link_color));
textView.setLinksClickable(true);
textView.setClickable(true);
textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">Google</a>"));

我已经解决了这个问题。感谢 Squonk 和 alijandro

        TextView textView = (TextView) view.findViewById(R.id.link_tv);
        textView.setLinkTextColor(getResources().getColorStateList(
                R.drawable.text_selector));
        textView.setLinksClickable(true);
        textView.setClickable(true);
        textView.setAutoLinkMask(Linkify.WEB_URLS);
        textView.setText("www.dummytext.com");

text_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="#ff888888"/>
    <item android:state_selected="true" android:color="#ff888888"/>
    <item android:color="#ffffffff"/>

</selector>

color/link_color.xml

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

以适当的方式登录 TextView android:textColorLink="@color/link_color"

示例