如何更改文本颜色按Android中的事件?

时间:2010-07-14 13:56:43

标签: android layout

如果按下文本视图,是否可以更改文本视图的文本颜色? 我希望实现闪烁效果,只要按下按钮,颜色变化就会持续。

我知道如何使用选择器列表和正确的状态更改textview的背景但是如果用户按下按钮或简单的textview,我该如何更改文本的颜色?

5 个答案:

答案 0 :(得分:6)

您也可以为颜色定义选择器。仅区分被按状态和所有其他状态的简短示例是:

<?xml version="1.0" encoding="utf-8"?>
<selector
   xmlns:android="http://schemas.android.com/apk/res/android">
   <item
      android:state_pressed="true"
      android:color="#FFFFFF" />
   <item
      android:color="#4C566C" />
</selector>

有关选择器的完整文档,请参阅此unofficial documentation

将每个颜色选择器放在一个文件中,并将这些文件放在项目资源文件夹中名为color的目录中。

答案 1 :(得分:1)

您可以使用setTextColor(ColorStateList)方法

进行更改
myTextView.setTextColor(myColorStates);

答案 2 :(得分:1)

搜索要在

中使用的颜色选择器
  

机器人:setTexColor

ATTR

答案 3 :(得分:0)

myTextView.setTextColor( 0xFFFF0000 )

答案 4 :(得分:0)

取自官方documentation

保存在res / color / button_text.xml的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"/> <!-- pressed -->
<item android:state_focused="true"
      android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>

此布局XML将颜色列表应用于视图:

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />