复合EditText使用drawable作为侧面图标

时间:2017-08-02 10:16:28

标签: android android-layout

我的问题是矩形的左下角区域没有任何圆角,即使我将其定义为10dp。

有没有更好的方法将Drawable放在EditText旁边,而不是使用我的愚蠢方法? 或者我的方法如何重新定义?

摘录布局:

    <EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:background="@drawable/email_bordered"
    android:ems="10"
    android:inputType="textEmailAddress"
    android:paddingLeft="34dp"
    android:textSize="30sp"
    android:layout_marginBottom="20dp"
    /><EditText

email_bordered.xml:

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

    <!-- This controls the white background-->
    <item
        android:width="32dp"
        android:height="90dp"
        android:left="1.9dp"
        android:bottom="1.9dp"
        >

        <shape android:shape="rectangle" >
            <corners
                android:topLeftRadius="10dp"
                android:bottomLeftRadius="10dp"
                android:topRightRadius="0dp"
                android:bottomRightRadius="0dp"
                />
            <solid android:color="#fff" />
        </shape>
    </item>
    <!-- This adds the vector image -->
    <item
        android:bottom="50dp"
        android:top="10dp"
        android:width="24dp"
        android:height="24dp"
        android:left="5dp"
        android:drawable="@drawable/ic_if_mail_461377"
        android:gravity="left">

    </item>

    <!-- This draws the border around everything -->
    <item>
        <shape android:shape="rectangle">
            <stroke
                android:width="2dp"
                android:color="#ffffff"/>
            <corners
                android:radius="10dp"
                />
        </shape>
    </item>




</layer-list>

这是预览: drawable preview

1 个答案:

答案 0 :(得分:1)

您可以使用EditText中的drawableLeft标记来获得所需的设计。

 <EditText
...     
android:drawableLeft="@drawable/ic_if_mail_461377"
android:drawablePadding="10dp"/>

修改

layer-list中进行一些更改后,最终结果就是这样。

enter image description here

<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="45dp"
android:drawableLeft="@drawable/pic"
android:drawablePadding="10dp"
android:background="@drawable/email_bordered"
android:ems="10"
android:inputType="textEmailAddress"
android:paddingLeft="4dp"
android:textSize="30sp"
/>

email_border.xml

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

<!-- This controls the white background-->
<item
    android:width="62dp"
    android:height="45dp"
    android:left="1.9dp"
    android:bottom="1.9dp"
    >

    <shape android:shape="rectangle" >
        <corners
            android:topLeftRadius="10dp"
            android:bottomLeftRadius="10dp"
            android:topRightRadius="0dp"
            android:bottomRightRadius="0dp"
            />
        <solid android:color="#fff" />
    </shape>
</item>
<!-- This adds the vector image -->



<!-- This draws the border around everything -->
<item>
    <shape android:shape="rectangle">
        <stroke
            android:width="1.9dp"
            android:color="#ffffff"/>
        <corners
            android:radius="10dp"
            />
    </shape>
</item>
</layer-list>