Edittext使用shape.xml更改边框颜色

37 android android-edittext

我在res - > drawable文件夹下创建了一个shape.xml文件.

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <solid android:color="#ffffff" />
        <stroke android:width="1dip" android:color="#ff9900" />
</selector>
Run Code Online (Sandbox Code Playgroud)

然后我用它EditText:

<EditText
    android:layout_width="300dp"
    android:layout_height="50dp"
    android:id="@+id/editText"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="300dp"
    android:hint="@string/hint"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:singleLine="true"
    android:background="@drawable/shape"/>
Run Code Online (Sandbox Code Playgroud)

但结果是它根本不改变边框颜色.为什么,怎么了?

fro*_*tto 85

为什么使用selectorroot标签?selector用于为视图的不同状态应用多个备用drawable,因此在这种情况下,不需要selector.

请尝试以下代码.

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

    <!-- Background Color -->
    <solid android:color="#ffffff" />

    <!-- Border Color -->
    <stroke android:width="1dp" android:color="#ff9900" />

    <!-- Round Corners -->
    <corners android:radius="5dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

另外值得一提的是,所有颜色条目也支持alpha通道,这意味着您可以使用透明或半透明颜色.例如#RRGGBBAA.


Man*_*ddy 12

第1步:在Drawable文件夹中创建border.xml

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

    <corners
        android:radius="2dp"
        />
    <solid android:color="#ffffff"
        />
    <stroke
        android:width="2dip"
        android:color="#000" />
</shape>
Run Code Online (Sandbox Code Playgroud)

第2步:在XML文件中创建EditText

 <EditText
        android:id="@+id/etEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="25dp"
        android:layout_marginTop="25dp"
        android:hint="Enter Email"
        android:padding="10dp"
        android:layout_marginRight="25dp"
        android:background="@drawable/border"
        android:inputType="textEmailAddress"
        android:singleLine="true" />
Run Code Online (Sandbox Code Playgroud)