我正在创建一个使用 Android 4.0 的应用程序。我想知道是否可以更改开关中文本的文本颜色。
我试过设置文本颜色,但它不起作用。
有任何想法吗?
提前致谢!
我正在创建一个使用 Android 4.0 的应用程序。我想知道是否可以更改开关中文本的文本颜色。
我试过设置文本颜色,但它不起作用。
有任何想法吗?
提前致谢!
您必须使用android:switchTextAppearance
属性,例如:
android:switchTextAppearance="@style/SwitchTextAppearance"
和风格:
<style name="SwitchTextAppearance" parent="@android:style/TextAppearance.Holo.Small">
<item name="android:textColor">@color/my_switch_color</item>
</style>
您也可以在代码中执行此操作,也可以使用上述样式:
mySwitch.setSwitchTextAppearance(getActivity(), R.style.SwitchTextAppearance);
...对于setTextColor
and Switch
- 如果您的SwitchTextAppearance
样式不提供textColor
你可以在Switch
源代码中检查它setSwitchTextAppearance
:
ColorStateList colors;
int ts;
colors = appearance.getColorStateList(com.android.internal.R.styleable.
TextAppearance_textColor);
if (colors != null) {
mTextColors = colors;
} else {
// If no color set in TextAppearance, default to the view's textColor
mTextColors = getTextColors();
}
ts = appearance.getDimensionPixelSize(com.android.internal.R.styleable.
TextAppearance_textSize, 0);
if (ts != 0) {
if (ts != mTextPaint.getTextSize()) {
mTextPaint.setTextSize(ts);
requestLayout();
}
}
我认为您必须查看您用于应用程序的主题。因为开关的颜色是主题的责任,afaik。所以我建议你看看如何更改主题的设置。或者您可以使用新颜色创建自定义主题。
TextView.setTextColor() 采用一个 int 表示颜色(例如 0xFFF5DC49),而不是 xml 文件中的资源 ID。在活动中,您可以执行以下操作:
textView1.setTextColor(getResources().getColor(R.color.mycolor))
在活动之外,您需要一个上下文,例如。
textView1.setTextColor(context.getResources().getColor(R.color.mycolor))
有关更多信息,请参阅此