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

时间:2015-03-18 08:21:16

标签: android android-layout

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

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

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

3 个答案:

答案 0 :(得分:1)

此属性android:textColorHighlight用于在选择要剪切或复制的文本时定义颜色。 您可以使用颜色选择器并将状态与您的状态相关联。 样本:

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

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

答案 1 :(得分:1)

您可以使用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>"));

答案 2 :(得分:0)

我已经解决了这个问题。感谢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>