Я создаю приложение, которое использует 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
и 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 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();
}
}
TextView.setTextColor() принимает int, представляющий цвет (например, 0xFFF5DC49), а не идентификатор ресурса из xml файла. В упражнении вы можете сделать что-то вроде:
textView1.setTextColor(getResources().getColor(R.color.mycolor))
за пределами действия вам понадобится Контекст, например.
textView1.setTextColor(context.getResources().getColor(R.color.mycolor))
Подробнее см. this
Я думаю, вам нужно взглянуть на тему, которую вы используете для своего приложения. Потому что цвет переключателя несет ответственность за тему, afaik. Поэтому я бы предложил вам посмотреть, как вы можете изменить настройки темы. Или вы можете создать пользовательскую тему с новыми цветами.