要创建一个自定义视图文本颜色选择器,你可以按照以下步骤进行操作:
res/values
文件夹下创建一个新的xml文件,命名为text_color_selector.xml
,并添加以下内容:
在这个例子中,我们定义了两个状态的颜色:按下状态下的colorAccent
颜色和默认状态下的colorPrimary
颜色。你可以根据自己的需求自定义这些颜色。
这里我们将textColor
属性设置为我们之前创建的颜色选择器text_color_selector
。
onTouchEvent
方法来实现。例如:public class CustomTextView extends androidx.appcompat.widget.AppCompatTextView {
public CustomTextView(Context context) {
super(context);
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// 在这里处理按下状态
// 设置自定义的按下状态颜色
setTextColor(ContextCompat.getColor(getContext(), R.color.colorAccent));
return true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
// 在这里处理松开状态
// 设置自定义的默认状态颜色
setTextColor(ContextCompat.getColor(getContext(), R.color.colorPrimary));
return true;
}
return super.onTouchEvent(event);
}
}
在这个例子中,我们重写了onTouchEvent
方法,并在按下状态和松开状态下分别设置了不同的文本颜色。
这样,你就创建了一个自定义视图文本颜色选择器,并将其应用于自定义的TextView中。当用户按下时,文本颜色会改变,松开时会恢复到默认颜色。