Как иметь EditText с границей в Android Lollipop

Я разрабатываю приложение для Android. Мне нужно знать, как мы можем иметь EditText с границей. В Lolipop они полностью изменили стиль EditText. Можем ли мы это сделать без использования чертежей?

Ответы

Ответ 1

Напишите editTextBackground.xml в папке с возможностью рисования в ресурсах

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="1dp"
        android:color="@color/borderColor" />
</shape>

не забудьте объявить цвет в ресурсах с именем borderColor.

и присвойте этот фон EditText в атрибуте фона xml

<EditText
    android:id="@+id/text"
    android:background="@drawable/editTextBackground"
    />

и установите границу на EditText.

UPDATE

Вы можете изменить границу текста редактирования без возможности рисования с помощью атрибута style

style="@style/Widget.AppCompat.EditText"

для более подробной информации посетите настроить текст редактирования

Ответ 2

Вы можете использовать drawable. Создайте в папке с вытаскиванием выпадающий файл макета. Вставьте этот код. Вы также можете изменить его - border.xml.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
    android:width="1dp"
    android:color="@color/divider" />
<solid
    android:color="#00FFFFFF"
    android:paddingLeft="10dp"
    android:paddingTop="10dp"/>
<padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />
</shape>

в вашем представлении EditText, добавьте

android:background="@drawable/border"

Ответ 3

Для правильной работы ваша фигура должна быть с тегами селектора и тегов

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

    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
            <stroke android:width="1dp"
                    android:color="@color/shape_border_active"/>
        </shape>
    </item>

</selector>

Ответ 4

Вы можете сделать это с помощью xml.

Создайте макет xml и назовите его как my_edit_text_border.xml

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ffffff"/>
            <corners android:radius="5dp" />
            <stroke
                android:width="2dp"
                android:color="#949494"
                />
        </shape>
    </item>
</selector>

Добавить фон в Edittext

<EditText
 android:id="@+id/editText1"
 ..
 android:background="@layout/my_edit_text_border">