Jeg vil lage gradientbakgrunn der gradienten er i den øverste halvdelen og det er en ensfarget farge i den nederste halvdelen, som i dette bildet nedenfor:
Jeg kan ikke fordi centerColor
sprer seg ut for å dekke bunnen og toppen.
I gradienten for knappen fades en hvit horisontal linje over blått mot toppen og bunnen]2.
Hvordan kan jeg lage en bakgrunn som det første bildet? Hvordan kan jeg lage en liten "centerColor" som ikke er spredt ut?
Dette er koden i XML for bakgrunnsknappen ovenfor.
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:startColor="#6586F0"
android:centerColor="#D6D6D6"
android:endColor="#4B6CD6"
android:angle="90"/>
<corners
android:radius="0dp"/>
</shape>
Du kan lage dette "halvgradient"-utseendet ved å bruke en xml Layer-List for å kombinere de øverste og nederste "båndene" i én fil. Hvert bånd er en xml-form.
Se dette tidligere svaret på SO for en detaljert veiledning: Multi-gradient shapes.
Først må du opprette en gradient.xml som følger
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
Deretter må du nevne ovennevnte gradient i bakgrunnen av layout.som følger
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient"
>
</LinearLayout>
Hvorfor ikke lage et bilde eller et 9 Patch-bilde og bruke det?
Lenken nedenfor har en fin veiledning om hvordan du gjør det:
http://android.amberfog.com/?p=247
Hvis du insisterer på å bruke en Shape, kan du prøve nettstedet nedenfor (velg Android nederst til venstre): http://angrytools.com/gradient/
Jeg har laget en lignende gradient (ikke nøyaktig) som den du har på denne lenken: http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269