Android Linearlayout : border In mit Schatten um einen Linearlayout

? wawanopoulos @ | Original: StackOverFlow
---

Ich möchte die gleiche Grenze des Linearlayout als Beispiel zu erstellen :

Android Linearlayout : border In mit Schatten um einen Linearlayout

In diesem Beispiel können wir sehen, dass die Grenze ist nicht gleich der ganzen Linearlayout . Wie mache ich dies mit Hilfe eines XML ziehfähigen Datei?

Im Moment habe ich nur in der Lage, eine einfache Grenze rund um den Linearlayout wie folgt erstellen :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <corners
      android:radius="1dp"
      android:topRightRadius="0dp"
      android:bottomRightRadius="0dp"
      android:bottomLeftRadius="0dp" />
  <stroke
      android:width="1dp"
      android:color="#E3E3E1" />

  <solid android:color="@color/blanc" />

</shape>
---

Top 5 Antwort

1Hariharan @

Try this..

<?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="#CABBBBBB"/>
            <corners android:radius="2dp" />
        </shape>
    </item>

    <item
        android:left="0dp"
        android:right="0dp"
        android:top="0dp"
        android:bottom="2dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white"/>
            <corners android:radius="2dp" />
        </shape>
    </item>
</layer-list>
2Der Golem @

Alternativ könnten Sie eine 9 Patch-Bild als Hintergrund für Ihr Layout zu verwenden, so dass für mehr "natürlich" Schatten :

Android Linearlayout : border In mit Schatten um einen Linearlayout

Result:

Android Linearlayout : border In mit Schatten um einen Linearlayout

Legen Sie das Bild in Ihrem Ordner /res/drawable . Achten Sie darauf, die Dateierweiterung .9.png, nicht .png

By the way, ist dies eine modifizierte ( reduziert auf das Minimum Quadratgröße ) einer bestehenden Ressource in Ordner der SDK Ressourcen API 19 gefunden. Ich ließ die roten Markierungen, denn sie scheinen nicht schädlich zu sein, wie in der draw9patch Werkzeug gezeigt .

[EDIT]

Über 9 -Patches, falls Sie hatte nie etwas mit ihnen zu tun .

Fügen Sie einfach es als Hintergrund für Ihre Ansicht .

Die schwarz markierten Bereiche ( links und oben ) dehnen ( vertikal, horizontal ) . Die schwarz markierten Bereiche ( rechts, unten ) legen die " Inhaltsbereich" ( wo es möglich ist, um Text oder Aufrufe - können Sie die nicht gekennzeichneten Regionen als " padding", wenn Sie mögen) .

Tutorial: http://radleymarx.com/blog/simple-guide-to-9-patch/

3user3619170 @

Okay, ich weiß, das ist viel zu spät . aber ich hatte die gleiche Anforderung. i gelöst wie diese

In " Zeichenfläche " : 1.First eine XML-Datei ( border_shadow.xml Beispiel) erstellen     Ordner und kopieren Sie den folgenden Code in es .

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<item>
<shape>
<!-- set the shadow color here -->
<stroke 
    android:color="#7000"
    android:width="2dp" />
<!-- setting the thickness of shadow (positive value will give shadow on that side)-->
<padding
    android:bottom="2dp" android:left="2dp" android:top="-1dp" android:right="-1dp"/>
<corners android:radius="3dp" />
</shape> 

</item>
<!-- Background -->
<item>
<shape>
    <solid android:color="#fff" />
    <corners android:radius="3dp" />
</shape>
</item>
</layer-list>

2.Now auf das Layout, in dem Sie den Schatten (Beispiel: Linearlayout ) wollen fügen Sie diese in Android: Hintergrund

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dip"
    android:background="@drawable/border_shadow"
    android:orientation="vertical">

und dass für mich gearbeitet.