web-dev-qa-db-ja.com

テキストプロパティの下にあるEditTextの下線

編集テキストの下の青い色を変更したいのですが、それがどのプロパティであるかわかりません。

背景色を変えてみましたが、うまくいきませんでした。

下に画像を添付しました。

enter image description here

102

実際には、EditTextの下線の色をプログラムで設定するのはかなり簡単です(1行のコード)。

色を設定するには:

editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);

色を消すには:

editText.getBackground().clearColorFilter();

注:EditTextがフォーカスをオンにすると、設定した色は有効にならず、代わりにフォーカス色になります。

APIリファレンス:

Drawable#setColorFilter

Drawable#clearColorFilter

85
Jing Li

EditText xmlレイアウトでAndroid:backgroundTint=""を使用します。

Api <21の場合は、サポートライブラリのAppCompatEditText、thenapp:backgroundTint=""を使用できます。

78

EditTextの各状態(フォーカス、有効、有効)には、色ではなく、異なる背景画像を使用する必要があります。

http://Android-holo-colors.com/

上のサイトでは、Holoテーマの多くのコンポーネントから画像を取得できます。 "EditText"とあなたが望む色を選択するだけです。あなたはページの下部にプレビューを見ることができます。

.Zipファイルをダウンロードして、プロジェクト内のリソース(画像とXML)をコピーして貼り付けます。

xMLの名前がapptheme_edit_text_holo_light.xml(または類似のもの)の場合

  1. 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>
    
  2. EditTextでこれを行うだけです。

    <EditText
       Android:layout_width="wrap_content"
       Android:layout_height="wrap_content"
       style="@style/EditTextCustomHolo"/>
    

そしてそれはそれです、私はそれがあなたを助けることを願っています。

38
Akariuz

これは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グリッチが発生します。

この問題は このスレッド で議論されています。 (私はこの解決策を個人的に試したことはありません)

20
Sufian

下線 of EditText色をstyles.xmlで指定して変更できます。アプリのテーマstyles.xmlに以下を追加します。

<item name="Android:textColorSecondary">@color/primary_text_color</item> 

コメント欄でanaが指摘しているように

  <item name="Android:colorControlActivated">@color/black</item>

テーマスタイルでこれを設定すると、編集テキストの下線の色を変更するのに適しています。

17
Dharani Kumar

そのため、描画可能なフォルダに新しい.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、セットコーナー、パディングなどで遊ぶことができます.

12
Vulovic Vukasin

アプリのスタイルで、プロパティ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>
9
Roberto

このコード行を使用するだけで、EditTextの色をプログラム的に簡単に変更できます。

edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));

2
matin ashtiani

下のコードを使用して、編集テキストの境界線の背景色を変更します。

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"
1
InnocentKiller

一番下の色を変更するには、アプリのテーマでこれを使用できます。

<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>

enter image description here

1
SAndroidD

colorAccentの色をcolorAccentに設定したい色を変更して実行すると出力が得られます

0
MD Khali

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は最も面倒な解決策ではありませんが、呼び出しに応じて下位互換性はありません。

0
MoMo