編集テキストの下の青い色を変更したいのですが、それがどのプロパティであるかわかりません。
背景色を変えてみましたが、うまくいきませんでした。
下に画像を添付しました。
実際には、EditTextの下線の色をプログラムで設定するのはかなり簡単です(1行のコード)。
色を設定するには:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
色を消すには:
editText.getBackground().clearColorFilter();
注:EditTextがフォーカスをオンにすると、設定した色は有効にならず、代わりにフォーカス色になります。
APIリファレンス:
EditText
xmlレイアウトでAndroid:backgroundTint=""
を使用します。
Api <21の場合は、サポートライブラリのAppCompatEditText
、thenapp:backgroundTint=""
を使用できます。
EditText
の各状態(フォーカス、有効、有効)には、色ではなく、異なる背景画像を使用する必要があります。
http://Android-holo-colors.com/
上のサイトでは、Holoテーマの多くのコンポーネントから画像を取得できます。 "EditText"とあなたが望む色を選択するだけです。あなたはページの下部にプレビューを見ることができます。
.Zipファイルをダウンロードして、プロジェクト内のリソース(画像とXML)をコピーして貼り付けます。
xMLの名前がapptheme_edit_text_holo_light.xml(または類似のもの)の場合
XMLの "styles.xml"に移動して、カスタムのEditText
スタイルを追加します。
<style name="EditTextCustomHolo" parent="Android:Widget.EditText">
<item name="Android:background">@drawable/apptheme_edit_text_holo_light</item>
<item name="Android:textColor">#ffffff</item>
</style>
EditText
でこれを行うだけです。
<EditText
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
style="@style/EditTextCustomHolo"/>
そしてそれはそれです、私はそれがあなたを助けることを願っています。
これはAndroidの新旧バージョンでは問題なく動作します(API 10でも問題なく動作します)。
このスタイルをstyles.xml
で定義します。
<style name="EditText.Login" parent="Widget.AppCompat.EditText">
<item name="Android:textColor">@Android:color/white</item>
<item name="Android:textColorHint">@Android:color/darker_gray</item>
<item name="colorAccent">@color/blue</item>
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlActivated">@color/blue</item>
</style>
そして今、あなたのXMLでは、これをtheme and style(styleに設定してtextColor
を設定し、theme他のすべてのものを設定します。
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:inputType="text"
style="@style/EditText.Login"
Android:theme="@style/EditText.Login"/>
このソリューションでは、選択ハンドルに下線が引かれている新しいバージョンのAndroid(LollipopまたはMarshmallow以降)で小さなUIグリッチが発生します。
この問題は このスレッド で議論されています。 (私はこの解決策を個人的に試したことはありません)
下線 of EditText色をstyles.xmlで指定して変更できます。アプリのテーマstyles.xmlに以下を追加します。
<item name="Android:textColorSecondary">@color/primary_text_color</item>
コメント欄でanaが指摘しているように
<item name="Android:colorControlActivated">@color/black</item>
テーマスタイルでこれを設定すると、編集テキストの下線の色を変更するのに適しています。
そのため、描画可能なフォルダに新しい.xmlファイルを作成する必要があります。
そのファイルにこのコードを貼り付けます。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:bottom="8dp"
Android:left="-3dp"
Android:right="-3dp"
Android:top="-3dp">
<shape Android:shape="rectangle">
<stroke
Android:width="1dp"
Android:color="@color/white"/>
</shape>
</item>
</layer-list>
そしてあなたのEditTextに、
Android:background="@drawable/your_drawable"
あなたはあなたの描くことができるxml、セットコーナー、パディングなどで遊ぶことができます.
アプリのスタイルで、プロパティcolorAccentを定義します。ここに例があります
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/action_bar</item>
</style>
このコード行を使用するだけで、EditTextの色をプログラム的に簡単に変更できます。
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
下のコードを使用して、編集テキストの境界線の背景色を変更します。
Drawableの下に新しいXMLファイルを作成します。
abc.xml
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="#00000000" />
<stroke Android:width="1dip" Android:color="#ffffff" />
</shape>
そしてそれをあなたの編集テキストの背景として追加する
Android:background="@drawable/abc"
一番下の色を変更するには、アプリのテーマでこれを使用できます。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#ffe100</item>
<item name="colorControlHighlight">#ffe100</item>
</style>
フローティングラベルの色を変更するには、次のテーマを書いてください。
<style name="TextAppearence.App.TextInputLayout" parent="@Android:style/TextAppearance">
<item name="Android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>
そしてあなたのレイアウトでこのテーマを使ってください:
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="20dp"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<EditText
Android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:capitalize="characters"
Android:hint="User Name"
Android:imeOptions="actionNext"
Android:inputType="text"
Android:singleLine="true"
Android:textColor="@Android:color/white" />
</Android.support.design.widget.TextInputLayout>
colorAccent
の色をcolorAccent
に設定したい色を変更して実行すると出力が得られます
APIが21未満のデバイスをサポートする必要がない場合は、xmlでbackgroundHintを使用します。次に例を示します。
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:inputType="textPersonName"
Android:hint="Task Name"
Android:ems="10"
Android:id="@+id/task_name"
Android:layout_marginBottom="15dp"
Android:textAlignment="center"
Android:textColor="@Android:color/white"
Android:textColorLink="@color/blue"
Android:textColorHint="@color/blue"
Android:backgroundTint="@color/lighter_blue" />
より良いサポートとフォールバックのために@Akariuzソリューションを使用してください。 backgroundHintは最も面倒な解決策ではありませんが、呼び出しに応じて下位互換性はありません。