web-dev-qa-db-ja.com

androidのフォーカスに基づいて変化するEditText背景のベースラインの色

下の画像に示されているベースラインでEditTextを設計する必要があり、フォーカスを受け取ると他の色に変更されます!

enter image description here

私は次を使用しています。

 <EditText    
    Android:id="@+id/mobilenumber" 
    Android:drawableLeft="@drawable/mobile"
    Android:drawablePadding="15dp" 
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:inputType="number"
    Android:background="@drawable/edt_bg"
    Android:singleLine="true"
    Android:textColorHint="#FFFFFF"
    Android:hint="@string/mobilenumber"
    Android:layout_marginTop="20dp"
    Android:layout_gravity="center"
    Android:padding="5dp"
    Android:imeOptions="actionNext"
    Android:maxLength="10"
    Android:textColor="#ffffff"
    Android:textCursorDrawable="@null"

    />

それで、これをどうやって処理するかを教えてください。

23
koti

EditTextのテーマを追加できます

<style name="EditTextTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">@color/primary</item>
    <item name="colorControlActivated">@color/primary</item>
    <item name="colorControlHighlight">@color/primary</item>
</style>

また、EditTextで次のように使用できます。

<EditText
    Android:id="@+id/edtCode"
    Android:layout_width="match_parent"
    Android:layout_height="40dp"
   .......................
    Android:theme="@style/EditTextTheme">

</EditText>
61
jobi mg

あなたのeditTextスタイルでこれを使用してください

<item name="backgroundTint">@color/focus_tint_list</item>

focus_tint_list.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
   <item Android:state_focused="true" Android:color="?attr/colorAccent"/>

   <item Android:state_focused="false" Android:color="#999999"/>

</selector>
10
Slashbin

カスタムカラーのホロカラージェネレーターをお試しください。

Android Holo Colors

セレクターを作成し、EditTextの背景として設定できます

res/drawable/edit_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item
        Android:state_window_focused="false"
        Android:state_enabled="true"
        Android:drawable="@drawable/textfield_default" />

    <item
        Android:state_window_focused="false"
        Android:state_enabled="false"
        Android:drawable="@drawable/textfield_disabled" />

    <item
        Android:state_pressed="true"
        Android:drawable="@drawable/textfield_pressed" />

    <item
        Android:state_enabled="true"
        Android:state_focused="true"
        Android:drawable="@drawable/textfield_selected" />

    <item
        Android:state_enabled="true"
        Android:drawable="@drawable/textfield_default" />

    <item
        Android:state_focused="true"
        Android:drawable="@drawable/textfield_disabled_selected" />

    <item
        Android:drawable="@drawable/textfield_disabled" />

</selector>

レイアウト:

<EditText    
    Android:id="@+id/mobilenumber"
    ....
    Android:background="@drawable/edit_text" />
3
SilentKiller

同じことが必要でしたが、次の方法で解決しました。

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
 <item Android:state_focused="true" Android:state_window_focused="true">
   <shape>
     <stroke Android:color="@color/blue_500" Android:width="2dp" />
     <corners Android:radius="45dp"/>
   </shape>
</item>
<item Android:state_focused="false" Android:state_window_focused="false">
  <shape>
    <stroke Android:color="@color/grey_600" Android:width="2dp"/>
    <corners Android:radius="45dp"/>
  </shape>
</item>
</selector>
0

EditTextがフォーカスされているときにベースラインを変更するには、プロジェクトのcolors.xmlファイルに移動して、「colorAccent」値を変更するだけです。

res/values/colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<color name="colorAccent">#DESIRED_COLOR</color>
</resources>`
0
Anuragraphy