Android,获取视图“所有”背景属性

时间:2015-10-21 05:27:44

标签: java android android-edittext

我使用view.getBackground()来获取EditText的背景,然后再将其设置为EditText,但问题是背景类似于edittext默认背景,除了其他edittexts默认背景在有焦点时变绿,但我的背景不会改变它的颜色! (EditText是在材料设计中引入的android默认editText)。

1 个答案:

答案 0 :(得分:0)

您可以创建自己的自定义EditText。

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

activity_main.xml 中定义EditText。

<EditText
        android:id="@+id/edit1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/edit1_text"
        android:inputType="text"
        android:background="@drawable/edit_text" />

你会看到这种类型的EditText。

image

根据您的需要自定义。