Alright, jag är allt annat än en expert på ämnet så om något verkar galet får ni gärna rätta mig. I grund och botten fungerar gradients i xml precis som vilket drawable som helst. Där du vanligtvis hänvisar till en bilds namn hänvisar du istället till en xml. Det är också fritt fram att skapa olika xml:er för olika states (typ normal och pressed) - precis som med bilder med andra ord. Lägg filerna direkt i drawables-mappen.
Här är en "gradient-xml":
PHP:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#e15593"
android:centerColor="#f9398e"
android:endColor="#b90d6b"
android:angle="270"/>
<corners android:radius="0dp"/>
<stroke android:width="2px" android:color="#000000"/>
</shape>
Gradient sätter såklart gradientens färger. Som jag fattat det kan man sätta tre färger - start, center och end. I det här fallet går den från ljusrosa till mörkrosa med en ganska stark rosa i mitten. Angle sätter din gradients vinkel..
Corners sätter hur rundade hörn du vill ha. Man kan även sätta varje kant för sig (android:bottomRightRadius="6dip" osv.).
Och stroke sätter din border, i det här fallet är den satt till 2px vilket gör att den alltid kommer att vara 2px oavsett upplösning på skärmen. Skulle man sätta den till 2dp så skulle den automatiskt skalas beroende på upplösning och därmed alltid se lika bred ut.