2017-08-31 91 views
0

我正尝试将我的EditText边框颜色设置为蓝色。我尝试了所有可能的方式,正如Stack Overflow中的许多答案中所建议的,但它不起作用。聚焦时只改变光标的颜色而不改变整个边界的颜色。下面是我的尝试,让我知道我在做正确无法在焦点上更改编辑文本的边框颜色

enter image description here

那灰色的边框,以蓝色

styles.xml

<!--Edit Text--> 
    <style name="EditTextTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="colorControlNormal">#FFFFFF</item> 
     <item name="colorControlActivated">#FF1792E5</item> 
     <item name="colorControlHighlight">#FF1792E5</item> 
    </style> 

edit_text_border.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="#ffffff"/> 
      <stroke 
       android:width="1dp" 
       android:color="#FF1792E5" 
       /> 
     </shape> 
    </item> 
</selector> 

XML

<EditText 
       android:id="@+id/edtName" 
       android:background="@drawable/edit_text_border" 
       android:inputType="text|textCapWords" 
       android:maxLength="40" 
       android:textColor="@color/black" 
       android:singleLine="true" /> 

清单:

<activity 
      android:name=".ui.activity.MyActivity" 
      android:theme="@style/EditTextTheme" 
      android:screenOrientation="portrait" /> 
+0

试图改变自己的EditText在setOnFocusChangeListener)的EditText的背景(。 –

回答

0

试试这个创建edittext_focused_blueRES /绘制文件夹这样

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <solid android:color="#ffffff" />  
    <stroke android:width="1dp" android:color="#ff00" /> 
    <corners android:radius="5dp" /> 

</shape> 

此创建资源A edittext_normal /绘制的文件夹这样

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 


</shape> 

尝试这种在资源创建edittext_bg /绘制文件夹这样

<?xml version="1.0" encoding="utf-8"?> 
    <selector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 

    <item 
     android:state_focused="true" 
     android:drawable="@drawable/edittext_focused_blue" 
     /> <!-- focused -->  
    <item android:state_focused="false" 
     android:drawable="@android:drawable/edittext_normal" 
     /> <!-- default --> 
     </selector> 

比适用于使用Android平台editext:背景= “@绘制/ edittext_bg”这样

<EditText 
    android:id="@+id/edtName" 
    android:background="@drawable/edittext_bg" 
    android:inputType="text|textCapWords" 
    android:maxLength="40" 
    android:textColor="@color/black" 
    android:singleLine="true" /> 
+0

Nop,那不起作用 –

+0

你能解释一下吗? –

+0

@RaviBashar检查更新ans –

0
<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <item 
     android:state_pressed="true" 
     android:drawable="@android:drawable/edittext_pressed" 
     /> <!-- pressed -->  
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/edittext_focused_blue" 
     /> <!-- focused -->  
    <item 
     android:drawable="@android:drawable/edittext_normal" 
     /> <!-- default --> 
</selector> 

试试这个

0

试试这个创建资源/文件夹绘制:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <stroke android:color="@color/block" android:width="5dp"/> 
<solid android:color="#ffffff"/> 

</shape> 

XML:

android:background="@drawable/yourborder" 

这里是输出。

enter image description here

另一种方式:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_window_focused="false" android:state_enabled="true" 
     android:drawable="@drawable/twitter_im_edittext_normal" /> 
    <item android:state_window_focused="false" android:state_enabled="false" 
     android:drawable="@drawable/twitter_im_edittext_normal" /> 
    <item android:state_pressed="true" android:drawable="@drawable/twitter_im_edittext_normal" /> 
    <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/twitter_im_edittext_focused" /> 
    <item android:state_enabled="true" android:drawable="@drawable/twitter_im_edittext_normal" /> 
    <item android:state_focused="true" android:drawable="@drawable/twitter_im_edittext_focused" /> 
    <item android:drawable="@drawable/twitter_im_edittext_normal" /> 
</selector> 

我跳这可能会帮助你。

0

我测试了下面的代码,它工作得很好。

<EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/ediittext_selector" 
     android:hint="Demo" 
     /> 

ediittext_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/edit_text_border_selected" /> 
    <item android:state_focused="true" android:drawable="@drawable/edit_text_border_selected" /> 
    <item android:drawable="@drawable/edit_text_border" /> 
</selector> 

edit_text_border_selected.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <solid android:color="#737373" /> 
    <stroke 
     android:color="#FF4081" 
     android:width="1dp" /> 

    <padding 
     android:bottom="10dp" 
     android:left="10dp" 
     android:right="10dp" 
     android:top="10dp" /> 
</shape> 

edit_text_border.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <solid android:color="#737373" /> 
    <stroke 
     android:color="#F78C1F" 
     android:width="1dp" /> 

    <padding 
     android:bottom="10dp" 
     android:left="10dp" 
     android:right="10dp" 
     android:top="10dp" /> 
</shape> 
相关问题