Wie füge ich einen Rahmen um das lineare Layout hinzu, außer am unteren Rand? LinearLayout muss links, oben und rechts einen Rand haben, aber nicht unten.
Wie füge ich einen Rahmen um das lineare Layout hinzu, außer am unteren Rand?
Damir
Android-Stack
Erstellen Sie eine XML-Datei namens border.xml im drawable-Ordner und fügen Sie den folgenden Code ein.
<?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="#FF0000" />
</shape>
</item>
<item android:left="5dp" android:right="5dp" android:top="5dp" >
<shape android:shape="rectangle">
<solid android:color="#000000" />
</shape>
</item>
</layer-list>
Fügen Sie dann Ihrem linearen Layout einen Hintergrund wie folgt hinzu:
android:background="@drawable/border"
BEARBEITEN :
Diese XML wurde mit einer laufenden Galaxie getestet Lebkuchen 2.3.3 und lief perfekt, wie im Bild unten gezeigt:
AUCH
getestet mit laufendem Galaxy S3 JellyBean 4.1.2 und lief perfekt, wie im Bild unten gezeigt:
Endlich funktioniert es perfekt mit allen APIs
BEARBEITEN 2:
Es kann auch mit einem Strich erfolgen, um den Hintergrund transparent zu halten, während mit dem folgenden Code ein Rand außer am unteren Rand erhalten bleibt.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="0dp" android:right="0dp" android:top="0dp"
android:bottom="-10dp">
<shape android:shape="rectangle">
<stroke android:width="10dp" android:color="#B22222" />
</shape>
</item>
</layer-list>
Ich hoffe das hilft .
-
funktioniert es bei dir, das getestet und bei mir funktioniert, prüfe es bitte
– Android-Stack
5. Mai ’12 um 16:06
-
Gibt es noch etwas hinzuzufügen? Hat bei mir nicht funktioniert. Die andere Antwort unten hat jedoch funktioniert.
– Shim
25. Okt ’12 um 19:37
-
@Noman es funktioniert perfekt mit allen APIs, überprüfen Sie bitte die Update-Antwort
– Android-Stack
18. Februar ’13 um 18:21
-
Wie wäre es mit transparentem Rechteck statt Schwarz mit rotem Rand?
– Hanry
4. Juni ’13 um 14:20
-
@hanry Sie können es auf eine andere Weise tun, überprüfen Sie BEARBEITEN 2
– Android-Stack
7. Juni ’13 um 20:43
Speichern Sie diese XML und fügen Sie sie als Hintergrund für das lineare Layout hinzu….
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="4dp" android:color="#FF00FF00" />
<solid android:color="#ffffff" />
<padding android:left="7dp" android:top="7dp"
android:right="7dp" android:bottom="0dp" />
<corners android:radius="4dp" />
</shape>
Hoffe das hilft! 🙂
-
Antwort muss akzeptiert werden. Funktioniert einwandfrei mit Nexus 5 5.1.1
– hash
20. Mai ’15 um 7:13
-
Ich habe diese Lösung ausprobiert, aber der untere Rand ist noch da?
– Sam
15. Juni ’17 um 9:40
Jonas
Kenny hat Recht, ich möchte nur ein paar Dinge klären.
- Datei erstellen
border.xml
und lege es in den Ordnerres/drawable/
-
füge den Code hinzu
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#FF00FF00" /> <solid android:color="#ffffff" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="0dp" /> <corners android:radius="4dp" /> </shape>
-
zurücksetzen wie
android:background="@drawable/border"
wo immer du die grenze haben willst
Meins hat zuerst nicht funktioniert, weil ich das gestellt habe border.xml
im falschen Ordner!
PAD
Hier ist ein Github-Link zu einer leichten und sehr einfach zu integrierenden Bibliothek, die es Ihnen ermöglicht, für jedes gewünschte Widget nach Belieben mit Rahmen zu spielen, einfach basierend auf einem FrameLayout-Widget.
Hier ist ein kurzer Beispielcode, damit Sie sehen können, wie einfach es ist. Weitere Informationen finden Sie jedoch unter dem Link.
<com.khandelwal.library.view.BorderFrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:leftBorderColor="#00F0F0"
app:leftBorderWidth="10dp"
app:topBorderColor="#F0F000"
app:topBorderWidth="15dp"
app:rightBorderColor="#F000F0"
app:rightBorderWidth="20dp"
app:bottomBorderColor="#000000"
app:bottomBorderWidth="25dp" >
</com.khandelwal.library.view.BorderFrameLayout>
Wenn Sie also keine Ränder am unteren Rand haben möchten, löschen Sie die beiden Zeilen über den unteren Rand in diesem benutzerdefinierten Widget, und das ist erledigt.
Und nein, ich bin weder der Autor dieser Bibliothek noch einer seiner Freunde 😉
.