Подтвердить что ты не робот

Как изменить стиль по умолчанию EditText

Я создаю три EditText в моем XML файле, используя такой код.

<EditText
            android:id="@+id/name_edit_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/profile_image_view_layout"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="20dp"
            android:ems="15"
            android:hint="@string/name_field"
            android:inputType="text" />

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

enter image description here

Но я хочу посмотреть, не используя фоновое изображение.

enter image description here

Итак, как это можно сделать? Любая идея или предложение будут полезны.

4b9b3361

Ответ 1

У вас есть несколько вариантов.

  • Используйте студий для Android генератор цветов Android Holo для создания ресурсов, стилей и тем, которые нужно добавить в приложение, чтобы получить голографический просмотр всех устройств.

  • Используйте голографическую всюду.

  • Используйте PNG для текстовых полей голограммы и сами устанавливайте их в качестве фоновых изображений. Вы можете получить изображения из генератора цветных головоломок Android. Вы должны сделать drawable и определить нормальные, выбранные и отключенные состояния.

ОБНОВЛЕНИЕ 2016-01-07

Этот ответ устарел. Android теперь имеет оттенок API и возможность темы на элементах управления прямо сейчас. Хорошей ссылкой для стиля или темы любого элемента является сайт materialdoc.

Ответ 2

Создайте xml файл, например edit_text_design.xml, и сохраните его в своей папке

Я дал цветовые коды Согласно моему выбору, пожалуйста, измените цветовые коды в соответствии с вашим выбором!

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

<item>
    <shape>
        <solid android:color="#c2c2c2" />
    </shape>
</item>

<!-- main color -->
<item
    android:bottom="1.5dp"
    android:left="1.5dp"
    android:right="1.5dp">
    <shape>
        <solid android:color="#000" />
    </shape>
</item>

<!-- draw another block to cut-off the left and right bars -->
<item android:bottom="5.0dp">
    <shape>
        <solid android:color="#000" />
    </shape>
</item>

</layer-list>

ваш текст редактирования должен содержать его как фон:

добавьте android: background = "@drawable/edit_text_design" ко всем вашим EditText

и ваш выше EditText должен выглядеть следующим образом:

      <EditText
        android:id="@+id/name_edit_text"
        android:background="@drawable/edit_text_design"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/profile_image_view_layout"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:ems="15"
        android:hint="@string/name_field"
        android:inputType="text" />

Ответ 3

Я решил тот же вопрос 10 минут назад, поэтому я дам вам короткое эффективное решение: Поместите это в тег приложения или манифест:

 android:theme="@android:style/Theme.Holo"

Также установите тему вашего XML-макета на Holo в графическом представлении макета.

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

Ответ 4

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

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#00f" />
            <padding android:bottom="2dp" />
        </shape>
    </item>
    <item android:bottom="10dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />

            <padding
                android:left="2dp"
                android:right="2dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
        </shape>
    </item>
</layer-list>

Ответ 5

edittext_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/edittext_pressed" android:state_pressed="true" /> <!-- pressed -->
    <item android:drawable="@drawable/edittext_disable" android:state_enabled="false" /> <!-- focused -->
    <item android:drawable="@drawable/edittext_default" /> <!-- default -->
</selector>

edittext_default.xml

       <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#BBDEFB" />
            <padding android:bottom="2dp" />
        </shape>
    </item>
    <item android:bottom="5dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />

            <padding
                android:left="0dp"
                android:right="0dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
        </shape>
    </item>
</layer-list>

edittext_pressed.xml

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#00f" />
            <padding android:bottom="2dp" />
        </shape>
    </item>
    <item android:bottom="5dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />

            <padding
                android:left="0dp"
                android:right="0dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
        </shape>
    </item>

</layer-list>

edittext_disable.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="#aaaaaa" />
                <padding android:bottom="2dp" />
            </shape>
        </item>
        <item android:bottom="5dp">
            <shape android:shape="rectangle" >
                <solid android:color="#fff" />

                <padding
                    android:left="0dp"
                    android:right="0dp" />
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="#fff" />
            </shape>
        </item>

    </layer-list>

он отлично работает без девяти патчей Api 10+ введите описание изображения здесь

Ответ 6

Теперь для AppCompatEditText

Примечание. Нам нужно использовать приложение: backgroundTint вместо android: backgroundTint

<android.support.v7.widget.AppCompatEditText
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="Underline color change"
    app:backgroundTint="@color/blue_gray_light" />