Je crée un fichier shape.xml sous le dossier 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>
Et puis je l'utilise sur une 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"/>
Mais le résultat est que cela ne change pas du tout la couleur de la bordure. Pourquoi qu'est ce qui ne va pas?
Pourquoi utiliser selector
comme balise racine? selector
est utilisé pour appliquer plusieurs dessins alternatifs alternatifs à différents états de la vue. Par conséquent, dans ce cas, selector
n'est pas nécessaire.
Essayez le code suivant.
<?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>
Il convient également de noter que toutes les entrées de couleur prennent également en charge le canal alpha, ce qui signifie que vous pouvez avoir des couleurs transparentes ou semi-transparentes. Par exemple #RRGGBBAA
.
Étape 1: Créez un fichier border.xml dans le dossier Drawable
<?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>
Étape 2: Créer un EditText dans un fichier 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>
Vous devez supprimer >
this de la balise racine selector
, comme ci-dessous.
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
En plus de déplacer votre code de shape
à partir de selector
.
le sélecteur est utilisé pour appliquer plusieurs dessins alternatifs pour différents statuts de la vue. Dans ce cas, le sélecteur n'est pas nécessaire
utilisez plutôt la forme
<?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>
Utilisez ce code sur XML. j'espère que ce sera du travail
<?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>
j'utilise comme suit pour venir sur cette question
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" />
Et appliqué comme ci-dessous
<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"/>
essayez comme ça ..
Utilisez root tag
comme shape
au lieu de selector
dans votre fichier shape.xml
et votre problème sera résolu!
C'est un travail pour moi: 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>