Ich mache eine shape.xml-Datei unter res -> drawable ordner.
<?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>
Und dann benutze ich es für eine 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"/>
Das Ergebnis ist jedoch, dass die Rahmenfarbe überhaupt nicht geändert wird. Warum was ist falsch?
Warum selector
als Root-Tag verwenden? selector
wird verwendet, um mehrere alternative Drawables für verschiedene Ansichtszustände anzuwenden. In diesem Fall ist selector
nicht erforderlich.
Versuchen Sie den folgenden Code.
<?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>
Es ist auch erwähnenswert, dass alle Farbeinträge auch Alphakanal unterstützen, was bedeutet, dass Sie transparente oder semitransparente Farben haben können. Zum Beispiel #RRGGBBAA
.
Schritt 1: Erstellen Sie eine border.xml im Drawable-Ordner
<?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>
Schritt 2: Erstellen Sie einen EditText in einer XML-Datei
<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>
Sie müssen >
dies aus dem selector
-Root-Tag entfernen, wie unten beschrieben
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
Verschieben Sie außerdem Ihren Code von shape
in selector
.
mit dem Selector können Sie mehrere alternative Drawables für verschiedene Ansichtsstatus anwenden. In diesem Fall ist kein Selector erforderlich
verwenden Sie stattdessen die Form
<?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>
Verwenden Sie diesen Code für XML. Ich hoffe es wird funktionieren
<?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>
ich verwende diese Angelegenheit wie folgt
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" />
Und als gebrüllt angewendet
<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"/>
versuchen Sie es so ..
Der folgende Code kann Ihnen dabei helfen. Wenn Sie einen Strich verwenden, können Sie den Rand im Text bearbeiten und auch die Farbe ändern, wie unten gezeigt ...
<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" />
Fügen Sie dies als Hintergrund hinzu, um Text zu bearbeiten. Vielen Dank!
Verwenden Sie root tag
als shape
anstelle von selector
in Ihrer shape.xml
-Datei, um das Problem zu lösen!
Dies ist für mich Arbeit: Drwable-> New-> Drawable Resource File-> XML-Datei erstellen
<?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>