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"/> 

Но в результате он не меняет цвет границы вообще. Почему? Что-то не так?

Solutions Collecting From Web of "Edittext меняет цвет границы с помощью shape.xml"

Зачем использовать 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 .

Шаг 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" /> 
 <?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 , например, ниже

  <selector xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

А также переместите свой код в shape с помощью selector .

Селектор используется для применения нескольких альтернативных чертежей для различного состояния представления, поэтому в этом случае нет необходимости в селекторе

Вместо этого используйте форму

 <?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> 

Я использую следующее:

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"/> 

Попробуйте вот так ..

Используйте root tag как shape вместо selector в файле shape.xml , и он решит вашу проблему!

Используйте этот код в 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>