如何在Android中更改EditText的焦点颜色

And*_*era 39 android android-edittext android-styles

如何更改EditText框上的焦点颜色(橙色)?对焦颜色是整个控件周围的小边缘,当控件具有焦点时为亮橙色.如何将焦点的颜色更改为其他颜色?任何人都可以帮我解决这个问题吗?提前致谢,

kco*_*ock 62

您必须创建/修改自己的NinePatch图像以替换默认图像,并将其用作EditText的背景.如果您查看SDK文件夹,在您的平台下,然后res/drawable,您应该找到EditText焦点状态的NinePatch图像.如果您只想更改,只需将其拉入Photoshop或任何图像编辑软件,并将橙色更改为您选择的颜色.然后将其保存到drawable文件夹中,并构建一个新的StateListDrawable,例如下面的内容:

edittext_modified_states.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="@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>
Run Code Online (Sandbox Code Playgroud)

我不知道EditText的默认NinePatches的实际名称,所以必要时替换它们,但这里的关键是只使用@android:drawable你未修改的图像(或者你可以将它们复制到你的项目的可绘制文件夹),然后使用您修改的drawable为您的焦点状态.

然后,您可以将此StateListDrawable设置为TextView的背景,如下所示:

<TextView
    android:background="@drawable/edittext_modified_states"
Run Code Online (Sandbox Code Playgroud)