Wie kann ich einen Rahmen um ein Android LinearLayout erstellen?

Lesezeit: 4 Minuten

Benutzer-Avatar
Benutzer1302569

Ich habe ein großes Layout und ein kleineres Layout darin.

Wie erstelle ich einen Linienrand um das kleine Layout?

  • Haben Sie es mit stackoverflow.com/questions/3496269/… versucht?

    – Sandstern

    27. Februar 2013 um 11:53 Uhr


Benutzer-Avatar
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:

  • füllt das Rechteck mit Farbe. Sie müssen stattdessen verwenden, um nur den Rand zu zeichnen.

    – Nacht Wut

    10. November 2013 um 12:27 Uhr

  • Der Trick hier ist eigentlich das , es hat eine Weile gedauert, bis ich herausgefunden habe, warum meine Form nicht funktioniert hat. Mit Polsterung funktioniert es einwandfrei.

    – 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 hinzu, es funktioniert gut.

    – 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”

Benutzer-Avatar
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);

Benutzer-Avatar
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

1338290cookie-checkWie kann ich einen Rahmen um ein Android LinearLayout erstellen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy