2010-12-10 14 views
2

Hallo ich versuche, eine Form zu zeichnen, die drei rechteckige Formen hat: 1. Volltonfarbe 2. Farbverlauf 3. weiße Linie Wie mache ich das? Wenn ich das versuche, funktioniert es nicht. Das Layout hat die übergeordnete Farbe.verschachtelte Formen in android sdk

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" 
    android:height="60px" 
    > 
    <shape 
     android:shape="rectangle" 
     android:height="30px" 
     > 
     <solid 
      android:color="#ff297baf" 
      /> 
    </shape> 
    <shape 
     android:shape="rectangle" 
     android:height="30px" 
     > 
     <gradient 
    android:type="linear" 
    android:startColor="#ff297baf" 
    android:endColor="#ff16c0e3" 
    android:angle="270"/> 
    </shape> 
    <shape 
     android:shape="rectangle" 
     android:height="3px" 
     > 
     <solid 
      android:color="#FFFFFFFF" 
      /> 
    </shape> 
</shape> 

Ich versuche, einen Farbverlauf in 3 Farben zu machen. Beginnen Sie mit einer Volltonfarbe #ff297baf, bei 60% starten Sie einen Farbverlauf von #ff297baf bis #ff16c0e3 und fügen Sie am Ende eine weiße Linie hinzu.

+0

Sie brauchen viel mehr Informationen hier zu geben. Haben Sie einen Beispielcode von dem, was Sie bisher versuchen? Warum brauchst du eine feste Farbe UND einen Farbverlauf? Ist es eine transparente Farbverlaufsüberlagerung? Die weiße Linie, ist es ein Umriss? Sollte es in die Form gehen? – kcoppock

+0

Bitte fügen Sie Ihrer Frage einen Kommentar hinzu und formatieren Sie sie ein wenig. –

+0

seine nicht transparente Überlagerung. Weiße Linie ist ein Umriss. Normalerweise würde ich das in HTML tun: "border-bottom: solid 2px white". Es muss nicht drinnen sein, aber ich kann keine anderen Formen auf der Ansicht bekommen. Der Compiler beschwert sich, dass Root sein soll. – dropsOfJupiter

Antwort

8

Wenn Sie mehrere Formen verwenden möchten, sollten Sie eine LayerListDrawable ausprobieren. So etwas funktioniert bei mir, aber nur für deine Beispielhöhe von 60px. Sie können es ändern, um Ihre Bedürfnisse genau entsprechen, aber das sollte Ihnen einen guten Start bekommen:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="rectangle"> 
     <gradient 
      android:angle="270" 
      android:endColor="#ff16c0e3" 
      android:startColor="#ff297baf" 
      android:type="linear" /> 
    </shape> 
</item> 
<item android:top="57px"> 
    <shape android:shape="rectangle"> 
     <solid android:color="#FFFFFFFF" /> 
     <size android:height="3px" /> 
    </shape> 
</item> 

+0

das hat definitiv funktioniert! vielen Dank! – dropsOfJupiter