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"
示例
我已经使用 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"
示例