2010-06-21 12 views
10

Ich möchte einen Elmentent mit einer 2-farbigen Umrandung haben. Ich kann mit dem Element einen einzelnen Farbumriss erstellen, aber das erlaubt mir nur, eine einzelne Linie zu zeichnen. Ich habe versucht, 2 Elemente in meinem, aber das hat auch nicht funktioniert. Gibt es eine Möglichkeit, entweder eine Form innerhalb einer Form zu zeichnen oder 2 Linien um meine Form zu zeichnen (die abgerundete Ecken hat btw).android Shape innerhalb einer Form

Dank Ben

Antwort

25

fand ich, dass die <layer-list> der beste Ansatz ist. Wie folgt aus:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:left="6dip" 
     android:right="6dip"> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <stroke 
       android:width="3dip" 
       android:color="#000000" /> 
     </shape> 
    </item> 
    <item 
     android:bottom="1dip" 
     android:left="8dip" 
     android:right="8dip" 
     android:top="1dip"> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <corners 
       android:bottomLeftRadius="2dip" 
       android:bottomRightRadius="2dip" 
       android:topLeftRadius="2dip" 
       android:topRightRadius="2dip" /> 
      <solid android:color="@android:color/white" /> 

      <stroke 
       android:width="1dip" 
       android:color="#BDBDBD" /> 
     </shape> 
    </item> 
</layer-list> 

Sie müssen dann die richtigen Ränder auf Ihrer listView Reihe Layout setzen, aber es funktioniert ganz gut.

0

, so habe ich eine Arbeit um, aber seine hässlich. Die Umgehung besteht darin, mein Element in ein anderes Containerelement einzubinden. das heißt

<RelativeLayout ... android:background="@drawable/outer"> <ListView ... android:background="@drawable/inner" /> </RelativeLayout>