状态改变时我需要改变文字颜色(按下,对焦)......
如何设置的文本颜色TextView使用ColorsStateList?
编辑,解决:
textView.setTextColor(new ColorStateList(
new int [] [] {
new int [] {android.R.attr.state_pressed},
new int [] {android.R.attr.state_focused},
new int [] {}
},
new int [] {
Color.rgb (255, 128, 192),
Color.rgb (100, 200, 192),
Color.White
}
));
Run Code Online (Sandbox Code Playgroud)
解决方案2
textView.setTextColor(getResources().getColorStateList(R.color.your_colors))
Run Code Online (Sandbox Code Playgroud)
我正在从REST API中读取一些数据,需要根据应用程序收到的信息生成一些按钮.
因为我在许多Activity屏幕中需要相同的按钮,所以我扩展了Button来制作一个RachelButton并在构造函数中进行设置.
public RachelButton(Context context, Info info) {
super(context);
this.info= info;
setText(info.getTime());
setTypeface(Typeface.DEFAULT, Typeface.BOLD);
int identifier = 0;
if(info.isAvailable()){
identifier = getContext().getResources().getIdentifier("drawable/info_button_"+info.getType(), null, getContext().getPackageName());
}else{
identifier = R.drawable.info_button_unavailable;
}
if(identifier == 0){
Log.e("INFO_BUTTON", "no button for "+info.getType());
}
setBackgroundResource(identifier);
setTextColor(R.color.info_button_text_color);
setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
//do stuff
}
});
}
Run Code Online (Sandbox Code Playgroud)
然后我用来生成彩色按钮的资源示例如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="@color/button_pressed"
android:endColor="@color/button_pressed"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/button_pressed" />
<corners
android:radius="3dp" />
<padding
android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp" …Run Code Online (Sandbox Code Playgroud)