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'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();
}
}
アプリケーションに使用しているテーマを確認する必要があると思います。スイッチの色はテーマの責任だからです。そのため、テーマの設定を変更する方法を確認することをお勧めします。または、新しい色でカスタム テーマを作成することもできます。
TextView.setTextColor() は、xml ファイルのリソース ID ではなく、色を表す int (例: 0xFFF5DC49) を取ります。アクティビティでは、次のようなことができます。
textView1.setTextColor(getResources().getColor(R.color.mycolor))
アクティビティの外では、コンテキストが必要になります。
textView1.setTextColor(context.getResources().getColor(R.color.mycolor))
詳細については、これを参照してください