LoginSignup
190
155

More than 5 years have passed since last update.

EditTextの色変更箇所まとめ

Posted at

EditTextの下線やカーソルの色など、どう指定すればいいか毎回忘れてしまうのでメモしておきます。

まとめ

変更箇所 指定箇所 説明
2016-02-01_18_58_30_png.png colorControlActivated つまみ部分。text selection handleと言うらしい。
2016-02-01_18_54_25_png.png colorControlNormal フォーカスが当たっていない時の下線部分。
2016-02-01_18_54_35_png.png colorControlActivated フォーカスが当たってる時の下線部分。Tintが当たっていて、指定した色より少し透過がかかっていて、長押しすると指定した色になる。
2016-02-01_18_58_02_png.png android:textColorHighlight テキストの選択色。
2016-02-01_18_57_16_png.png android:textColorHint 入力前のヒント(プレースホルダー)。
2016-02-01_18_57_33_png.png android:textColor テキストの色。
2016-02-01_18_54_35_png.png android:textCursorDrawable カーソルの色。 drawableの指定ですが、色をセットすることもできます。

コード

レイアウトxmlのEditTextはこんな感じです。AppCompatEditTextを使っていますが、EditTextでも同じです。
styleapp:theme を両方指定しているのは、 style だけだと colorControlNormalcolorControlActivated の指定が効かないからです。
このへんは中のコードを読めていないのですが、ActivityやApplicationで指定しているテーマのスタイルが適用されてしまうようです。

activity_main.xml
<android.support.v7.widget.AppCompatEditText
    android:id="@+id/edit_text"
    style="@style/EditTextStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="ヒント"
    app:theme="@style/EditTextStyle" />

styles.xmlはこんな感じです。ちなみに android:~ のattributesはstyleではなく直接レイアウトに指定しても適用されますが、 colorControl~ のattributesは適用されません。

styles.xml
<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="colorControlNormal">@color/amber500</item>
    <item name="colorControlActivated">@color/pink500</item>
    <item name="android:textCursorDrawable">@color/indigo500</item>
    <item name="android:textColor">@color/orange500</item>
    <item name="android:textColorHint">@color/teal500</item>
    <item name="android:textColorHighlight">@color/purple500</item>
</style>

色がわかりやすいようにstyles.xmlのキャプチャを貼っておきます。

styles_xml_-_ConferenceSched_-____work_private_conference-sched__-_Android_Studio_1_5_Beta.png

EditTextのコードを読んでstyleやthemeがどう適用されていくかを追えばもう少し詳細にわかりそうですが、とりあえずこれでだいたいの色は変更できます。

190
155
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
190
155