AndroidのCheckboxの枠線色を変更する


Checkboxの枠線の色というのはこれです。

結論からいうと、themetextColorSecondary を変更するだけです。

ただ textColorSecondary を変更するとToolbarのアイコンあたりにも影響が出るので、そのへんも含めてメモしておこうと思います。

themeの変更

android:textColorSecondaryを変更します。

theme.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/theme500</item>
    <item name="colorPrimaryDark">@color/theme600</item>
    <item name="colorAccent">@color/accent500</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/grey600</item>
</style>

CheckBoxの内部では、TintManager というクラスがthemeに基づいて @drawable/abc_btn_check_to_on_mtrl_000 にいい感じに色をつけてくれます。

また、AndroidStudio1.4からThemeEditorがついたので、テーマのどこを変更したらどこに影響が出るかわかりやすくなりました。Editorを見ながら設定するといいかもしれません。

参考 : http://qiita.com/katsuki/items/6944d26ca9e372ade1dd

Toolbarのアイコン色の変更

上記でCheckboxの色は変更されるのですが、Toolbarのアイコンの色も変わってしまいます。
Toolbarのstyleだけ別途設定したい場合は、toolbarにthemeを適用すればOKです。

style.xml
<style name="Toolbar">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">?attr/actionBarSize</item>
    <item name="android:background">?attr/colorPrimary</item>
    <item name="theme">@style/ToolbarTheme</item>
</style>

<style name="ToolbarTheme">
    <item name="android:textColorSecondary">@color/white</item>
</style>
layout.xml
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    style="@style/Toolbar" />