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'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()は、xmlファイルのリソースIDではなく、色(0xFFF5DC49など)を表すintを取ります。アクティビティでは、次のようなことができます。
textView1.setTextColor(getResources().getColor(R.color.mycolor))
アクティビティの外では、コンテキストが必要になります。
textView1.setTextColor(context.getResources().getColor(R.color.mycolor))
詳細については this を参照してください