Verschachtelte Formen in Android
-
08-10-2019 - |
Frage
Ich versuche, eine Form zu zeichnen, die drei rechteckige Formen hat:
1. Volltonfarbe 2. Gradienten 3. weiße Linie
Wie mache ich das? Wenn ich dies versuchen, funktioniert es nicht. Das Layout hat die übergeordnete Farbe.
<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 Gradienten in 3 Farben zu machen. Beginnen Sie mit einer soliden Farbe #ff297baf
, bei 60% einen Gradienten von #ff297baf
zu #ff16c0e3
starten und eine während der Linie am Ende hinzuzufügen.
Lösung
Wenn Sie in der Verwendung mehrerer Formen zu sehen sind, sollten Sie einen LayerListDrawable versuchen. So etwas wie das funktioniert für mich, aber nur für Ihr Beispiel Höhe von 60px. Sie können es ändern müssen 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>