Ich habe ein großes Layout und ein kleineres Layout darin.
Wie erstelle ich einen Linienrand um das kleine Layout?
Benutzer1302569
Ich habe ein großes Layout und ein kleineres Layout darin.
Wie erstelle ich einen Linienrand um das kleine Layout?
Anup Cowkur
Sicher. Sie können jedem gewünschten Layout einen Rahmen hinzufügen. Grundsätzlich müssen Sie ein benutzerdefiniertes Drawable erstellen und es Ihrem Layout als Hintergrund hinzufügen. Beispiel:
Erstellen Sie eine Datei namens customborder.xml
in Ihrem 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="20dp"/>
<padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
<stroke android:width="1dp" android:color="#CCCCCC"/>
</shape>
Wenden Sie es nun als Hintergrund auf Ihr kleineres Layout an:
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/customborder">
Das sollte reichen.
Siehe auch:
– Nacht Wut
10. November 2013 um 12:27 Uhr
Der Trick hier ist eigentlich das
– John
27. März 2014 um 18:50 Uhr
Beide <solid/>
und <stroke/>
das ganze Rechteck ausfüllen? Ist das ein Fehler in meinem Code?
– mr5
5. Mai 2014 um 6:40 Uhr
Fügen Sie
– Pierri
25. September 2014 um 14:40 Uhr
Pierrys Kommentar macht diese Antwort richtig. Andernfalls können Sie nur einen vollständig ausgefüllten Hintergrund erhalten.
– kagkar
17. November 2016 um 21:51 Uhr
Erstellen Sie XML namens border.xml im Drawable-Ordner wie folgt:
<?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 dies dann dem linearen Layout als Hintergrund hinzu:
android:background="@drawable/border"
Versuche dies:
Lassen Sie uns zum Beispiel res/drawable/my_custom_background.xml wie folgt definieren:
(erstellen Sie dieses Layout in Ihrem Drawable-Ordner) layout_border.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="2dp" android:height="2dp"
android:color="#FF0000" />
<solid android:color="#000000" />
<padding android:left="1dp" android:top="1dp" android:right="1dp"
android:bottom="1dp" />
<corners android:radius="1dp" android:bottomRightRadius="5dp"
android:bottomLeftRadius="0dp" android:topLeftRadius="5dp"
android:topRightRadius="0dp" />
</shape>
</item>
</layer-list>
main.xml
<LinearLayout
android:layout_gravity="center"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@drawable/layout_border" />
</LinearLayout>
Erstellen Sie eine XML-Datei im Drawable-Ordner
<stroke
android:width="2dp"
android:color="#B40404" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
<corners android:radius="4dp" />
Rufen Sie nun dieses XML zu Ihrem kleinen Layouthintergrund auf
android:background=”@drawable/yourxml”
Rangierer
Diese Lösung fügt nur den Rahmen hinzu, der Körper des LinearLayout ist transparent.
Erstellen Sie zuerst diesen zeichbaren Rand im zeichenbaren Ordner. border.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android= "http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="2dp" android:color="#ec0606"/>
<corners android:radius="10dp"/>
</shape>
Fügen Sie dann in Ihrer LinearLayout-Ansicht die border.xml wie folgt als Hintergrund hinzu
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/border">
Sie können es auch pragmatisch tun
GradientDrawable gradientDrawable=new GradientDrawable();
gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));
Legen Sie dann den Hintergrund des Layouts fest als:
LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);
sterblich
Ich werde den Link für Android-Dokumente zu anderen Antworten hinzufügen.
https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
Es beschreibt alle Attribute des Shape Drawable und stroke
unter ihnen, um die Grenze zu setzen.
Beispiel:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:width="1dp" android:color="#F00"/>
<solid android:color="#0000"/>
</shape>
Roter Rand mit transparentem Hintergrund.
Der solide Teil ermöglicht nur die Einstellung der Tönung auf den Rand. +1
– aksh1618
28. Januar 2019 um 1:54 Uhr
Haben Sie es mit stackoverflow.com/questions/3496269/… versucht?
– Sandstern
27. Februar 2013 um 11:53 Uhr