Ich habe ein großes Layout und ein kleineres Layout darin.
Wie erstelle ich einen Linienrand um das kleine Layout?
Ich habe ein großes Layout und ein kleineres Layout darin.
Wie erstelle ich einen Linienrand um das kleine Layout?
Antworten:
Sicher. Sie können jedem gewünschten Layout einen Rahmen hinzufügen. Grundsätzlich müssen Sie ein benutzerdefiniertes Zeichen erstellen und es als Hintergrund zu Ihrem Layout hinzufügen. Beispiel:
Erstellen Sie eine Datei mit dem Namen customborder.xml
in Ihrem Zeichenordner:
<?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 den Trick machen.
Siehe auch:
<solid/>
und <stroke/>
das gesamte Rechteck ausfüllen? Ist das ein Fehler in meinem Code?
Erstellen Sie XML mit dem Namen border.xml in einem zeichnbaren 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 zu einem linearen Layout hinzu, das wie folgt aussieht:
android:background="@drawable/border"
Versuche dies:
Definieren wir beispielsweise res / drawable / my_custom_background.xml als:
(Erstellen Sie dieses Layout in Ihrem Zeichenordner.) 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 in einem zeichnbaren 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 diese XML nun in Ihrem kleinen Layout-Hintergrund auf
android: background = "@ drawable / yourxml"
Diese Lösung fügt nur den Rand hinzu, der Hauptteil des LinearLayout ist transparent.
Erstellen Sie zunächst diesen Rahmen im Zeichenordner. 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 als Hintergrund wie folgt 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));
Stellen Sie dann den Hintergrund des Layouts wie folgt ein:
LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);
Ich werde einen Link zu Android-Dokumenten 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 das Festlegen des Rahmens .
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.
Sie möchten keine zeichnbare Ressource erstellen?
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:minHeight="128dp">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="1dp"
android:background="@android:color/white">
<TextView ... />
</FrameLayout>
</FrameLayout>