Android LinearLayout Gradient Background Android LinearLayout Gradient Background android android

Android LinearLayout Gradient Background


Ok I have managed to solve this using a selector. See code below:

main_header.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="50dip"    android:orientation="horizontal"    android:background="@drawable/main_header_selector"></LinearLayout>

main_header_selector.xml:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item>    <shape>        <gradient            android:angle="90"            android:startColor="#FFFF0000"            android:endColor="#FF00FF00"            android:type="linear" />    </shape></item></selector>

Hopefully this helps someone who has the same problem.


It is also possible to have the third color (center). And different kinds of shapes.

For example in drawable/gradient.xml:

<shape    xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <gradient        android:startColor="#000000"        android:centerColor="#5b5b5b"        android:endColor="#000000"        android:angle="0" /></shape>

This gives you black - gray - black (left to right) which is my favorite dark background atm.

Remember to add gradient.xml as background in your layout xml:

android:background="@drawable/gradient"

It is also possible to rotate, with:

angle="0"

gives you a vertical line

and with

angle="90"

gives you a horizontal line

Possible angles are:

0, 90, 180, 270.

Also there are few different kind of shapes:

android:shape="rectangle"

Rounded shape:

android:shape="oval"

and problably a few more.

Hope it helps, cheers!


In XML Drawable File:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item>        <shape>            <gradient android:angle="90"                android:endColor="#9b0493"                android:startColor="#38068f"                android:type="linear" />        </shape>    </item></selector>

In your layout file: android:background="@drawable/gradient_background"

  <?xml version="1.0" encoding="utf-8"?>    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="@drawable/gradient_background"        android:orientation="vertical"        android:padding="20dp">        .....</LinearLayout>

enter image description here