Как изменить стиль по умолчанию 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]()
Итак, как это можно сделать? Любая идея или предложение будут полезны.
Ответы
Ответ 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" />