Edittext меняет цвет границы с помощью shape.xml
Я делаю файл shape.xml в папке res → drawable.
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#ff9900" />
</selector>
И затем я использую его на EditText
:
<EditText
android:layout_width="300dp"
android:layout_height="50dp"
android:id="@+id/editText"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="300dp"
android:hint="@string/hint"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"
android:background="@drawable/shape"/>
Но результат заключается в том, что он вообще не меняет цвет рамки. Почему, что не так?
Ответы
Ответ 1
Зачем использовать selector
в качестве корневого тега? selector
используется для применения нескольких альтернативных чертежей для разных состояний представления, поэтому в этом случае нет необходимости в selector
.
Попробуйте использовать следующий код.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Background Color -->
<solid android:color="#ffffff" />
<!-- Border Color -->
<stroke android:width="1dp" android:color="#ff9900" />
<!-- Round Corners -->
<corners android:radius="5dp" />
</shape>
Также стоит отметить, что все цветные записи поддерживают альфа-канал, а это значит, что вы можете иметь прозрачные или полупрозрачные цвета. Например #RRGGBBAA
.
Ответ 2
Шаг 1: Создайте border.xml в папке с возможностью рисования
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="2dp"
/>
<solid android:color="#ffffff"
/>
<stroke
android:width="2dip"
android:color="#000" />
</shape>
Шаг 2. Создание файла EditText в XML файле
<EditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginTop="25dp"
android:hint="Enter Email"
android:padding="10dp"
android:layout_marginRight="25dp"
android:background="@drawable/border"
android:inputType="textEmailAddress"
android:singleLine="true" />
Ответ 3
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#ff9900" />
</selector>
Вам нужно удалить >
из тэга selector
root, как показано ниже
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
Кроме того, переместите код shape
с selector
.
Ответ 4
Селектор используется для применения нескольких альтернативных чертежей для различного состояния представления, поэтому в этом случае нет необходимости в селекторе
вместо этого используйте форму
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#ff9900" />
</shape>
Ответ 5
Я использую для этого следующее:
edittext_style.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:thickness="0dp"
android:shape="rectangle">
<stroke android:width="1dp"
android:color="#c8c8c8"/>
<corners android:radius="0dp" />
И применен как внизу
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTextName"
android:background="@drawable/edit_text_style"/>
попробуйте вот так.
Ответ 6
Используйте этот код в xml. я надеюсь, что это будет работа.
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:thickness="0dp"
android:shape="rectangle">
<stroke android:width="3dp"
android:color="#4799E8"/>
<corners android:radius="5dp" />
<gradient
android:startColor="#C8C8C8"
android:endColor="#FFFFFF"
android:type="linear"
android:angle="270"/>
</shape>
Ответ 7
Используйте root tag
как shape
вместо selector
в вашем файле shape.xml
, и он решит вашу проблему!
Ответ 8
Это работа для меня: Drwable-> New-> Drawable Resource File-> create xml file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#e0e0e0" />
<stroke android:width="2dp" android:color="#a4b0ba" />
</shape>
Ответ 9
Проверьте приведенный ниже код, возможно, вам поможет. Использование обводки может сделать рамку в редактируемом тексте и изменить ее цвет, как показано ниже...
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/secondary" />
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
Добавьте это в качестве фона для редактирования текста. Спасибо!