Пользовательская форма Android для EditText

Я пытаюсь создать собственный дизайн для EditText. Смотрите прикрепленное изображение ниже,

введите описание изображения здесь

Я пытаюсь добиться этого, используя пользовательскую форму, подобную той, которая определена ниже.

<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 выглядит следующим образом, значок поиска не выровнен по левому краю.

введите описание изображения здесь

3 ответа

Решение

Я бы сделал это так:

  1. Для границы вы можете сделать это с помощью Drawable, как вы сделали
  2. Для значка поиска вместо того, чтобы пытаться поместить его в файл для рисования, почему бы не установить его в вас EditText XML-макет, используя android:drawableLeftЗатем вы можете установить отступ, используя android:paddingLeft а также android:drawablePadding

Я редактирую свой ответ. редактировать Shape.xml как показано ниже:

введите описание изображения здесь

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>
<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>
Другие вопросы по тегам