适用于EditText的Android自定义形状

时间:2016-01-20 01:31:37

标签: android android-edittext android-shape android-shapedrawable

我正在尝试为EditText创建自定义设计。见下图,

enter image description here

我正在尝试使用如下定义的自定义形状来实现此目的。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/places_ic_search"
        android:width="30dp">
        <shape
            android:shape="rectangle"></shape>
    </item>

    <item
        android:left="30dp"
        android:drawable="@color/white">
        <shape android:shape="rectangle" >
            <gradient android:startColor="#000000" android:endColor="#FFFFFF" android:angle="90"/>
        </shape>
    </item>

</layer-list>

但不显示搜索图标。我怎样才能做到这一点?

感谢。

我已经用微小的阳光应用了答案,EditBox看起来像这样,搜索图标没有对齐到左边。

enter image description here

3 个答案:

答案 0 :(得分:1)

我编辑我的答案。修改Shape.xml,如下所示:

enter image description here

Shape.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle" >
            <stroke android:width="5dp" android:color="#FF0000" />
        </shape>
    </item>

    <item
        android:left="3dp"
        android:right="3dp"
        android:top="3dp"
        android:bottom="3dp"
        >
        <shape android:shape="rectangle" >
            <stroke android:width="1dp" android:color="#FF0000" />\
            <solid android:color="#FFFFFF" />
            <corners android:radius="3dp" />
        </shape>
    </item>

    <item android:gravity="left" android:left="10dp">
        <bitmap android:src="@android:drawable/ic_menu_search" android:gravity="left">

        </bitmap>
    </item>
</layer-list>

答案 1 :(得分:0)

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <gradient android:startColor="#FFFFFF" android:endColor="#FFFFFF" android:angle="90"/>
            <corners android:radius="3dp"></corners>
        </shape>
    </item>
    <item android:drawable="@drawable/places_ic_search"
          android:gravity="center_vertical|left"
          android:height="10dp"
          android:width="30dp">
    </item>
</layer-list>

答案 2 :(得分:0)

我会这样做:

  1. 对于边框部分,您可以使用像您一样的可绘制
  2. 对于搜索图标,为什么不使用EditTextandroid:drawableLeft xml布局中设置它,而不是尝试将其放在可绘制文件中,然后可以使用{{1}设置填充}和android:paddingLeft