我创建了一个选择器:
btn_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:drawable="@drawable/btn_bg_pressed" android:state_pressed="true" />
<!-- focused -->
<item android:drawable="@drawable/btn_bg_focused" android:state_focused="true" />
<!-- default -->
<item android:drawable="@drawable/btn_bg_default" />
</selector>
btn_bg_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/btn_pressed"/>
</shape>
btn_bg_focused.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/reality_fix_yellow"/>
</shape>
btn_bg_default.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp"
android:color="@color/btn_default_border_color" />
</shape>
我想在焦点改变时更改text color
按钮。我尝试添加android:color="color_code"
和android:textColor="color_code"
但失败了。
请帮助我如何使用选择器更改按钮的文字颜色?
答案 0 :(得分:2)
以这种方式定义:
在res/color
目录
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#000000" /> <!-- pressed -->
<item android:state_focused="true"
android:color="#000000" /> <!-- focused -->
<item android:color="#FFFFFF" /> <!-- default -->
</selector>
并在Button
属性中定义这种方式。
<Button
android:TextColor="@color/button_selector"
/>
答案 1 :(得分:1)
有一个技巧可以重复使用背景可绘制资源来改变文本的颜色。
在$('.rootwizard')
// String Validation
.formValidation({
framework: 'bootstrap',
excluded: ':disabled',
live: 'enabled',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
// Name Validation
locale: validation_lang,
fields: {
readDoc1: {
validators: {
notEmptyDoc: { }
}
}
});
中,按以下方式声明按钮layout.xml
和background
:
textColor
现在,在<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_bg"
android:textColor="@drawable/btn_bg"
android:text="Hello" />
中,将drawable/btn_bg.xml
定义为android:color="@color/your_color_code"
属性:
item
您应该能够看到按钮的背景和文字颜色变化。
答案 2 :(得分:0)
您可以在自己的TextView类上实现此功能,该类扩展Android TextView
类并覆盖onTouchEvent(MotionEvent event)
然后,您可以根据传递的MotionEvent修改实例文本颜色。
例如:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Change color
} else if (event.getAction() == MotionEvent.ACTION_UP) {
// Change it back
}
return super.onTouchEvent(event);
}