如何更改Android中启用的NumberPicker中选定数字的颜色
我想在MyNumberPicker上实现这种效果 到目前为止,我实现了一个NumberPicker类并更改了几个属性,但有趣的是:如何更改Android中启用的NumberPicker中选定数字的颜色,android,numberpicker,Android,Numberpicker,我想在MyNumberPicker上实现这种效果 到目前为止,我实现了一个NumberPicker类并更改了几个属性,但有趣的是: public class NumberPicker extends android.widget.NumberPicker{ public NumberPicker(Context context, AttributeSet attrs) { super(context, attrs); } @Override
public class NumberPicker extends android.widget.NumberPicker{
public NumberPicker(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void addView(View child) {
super.addView(child);
updateView(child);
}
@Override
public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) {
super.addView(child, index, params);
updateView(child);
}
@Override
public void addView(View child, android.view.ViewGroup.LayoutParams params) {
super.addView(child, params);
updateView(child);
}
private void updateView(View view) {
if(view instanceof EditText){
((EditText) view).setTextSize(getResources().getDimension(R.dimen.numberpicker_text_size));
((EditText) view).setTextColor(ContextCompat.getColor(getContext(), R.color.colorPrimaryDark));
}
}
但我得到的效果是:
我获取所有蓝色文本(已选择、未选择、活动、非活动)如何仅在启用的NumberPicker和选定值上获取此蓝色
感谢您的支持使用所需属性创建一个
颜色状态列表
。然后将这些应用于EditText
final ColorStateList colors = new ColorStateList(
new int[][]{
new int[]{android.R.attr.state_selected},
new int[]{-android.R.attr.state_selected}
},
new int[]{selectedColorCode, defaultColor}
);
((EditText) view).setTextColor(colors);
我使用selectedColorCode和DefaultColorPrimary以及colorPrimaryDark,但是我只看到应用了colorPrimary,那么这和((EditText)视图之间的区别是什么呢;我看到他们两个都是彩色的。您可以使用setOnTouchListener并更改numberPicker的EditText颜色来更改唯一选定的数字,就像您的问题的第一幅图像一样。