Tuesday, 16 July 2013

Gradient Background for buttons, list Item and Layouts Android

Gradient Background for buttons, list Item and Layouts Android 

Many Developers want gradient backgrounds instead of images, So here is lots of gradient example for buttons , list items and Layouts.
Have look on screen shots first.










Sorry This tutorial is not fully structured  :( , Because I don't have much time to do that right now.
But can learn many new things from this Such as Text shadow as we mention in style.xml etc 

MainActivity.java

package com.example.gradiantexample;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              Button button1 = (Button) findViewById(R.id.button1);
              Button button2 = (Button) findViewById(R.id.button2);
              Button button3 = (Button) findViewById(R.id.button3);
              Button button4 = (Button) findViewById(R.id.button4);
              Button button5 = (Button) findViewById(R.id.button5);
              Button button6 = (Button) findViewById(R.id.button6);
              Button button7 = (Button) findViewById(R.id.button7);
              Button button8 = (Button) findViewById(R.id.button8);
              Button button9 = (Button) findViewById(R.id.button9);

              button1.setOnClickListener(this);
              button2.setOnClickListener(this);
              button3.setOnClickListener(this);
              button4.setOnClickListener(this);
              button5.setOnClickListener(this);
              button6.setOnClickListener(this);
              button7.setOnClickListener(this);
              button8.setOnClickListener(this);
              button9.setOnClickListener(this);

       }

       @Override
       public void onClick(View v) {
              Intent i = new Intent(this, GradianColor.class);
              switch (v.getId()) {
              case R.id.button1:
                     i.putExtra("GradiantNum", 1);
                     startActivity(i);
                     break;
              case R.id.button2:
                     i.putExtra("GradiantNum", 2);
                     startActivity(i);
                     break;

              case R.id.button3:
                     i.putExtra("GradiantNum", 3);

                     startActivity(i);
                     break;

              case R.id.button4:
                     i.putExtra("GradiantNum", 4);

                     startActivity(i);
                     break;

              case R.id.button5:
                     i.putExtra("GradiantNum", 5);
                     startActivity(i);

                     break;

              case R.id.button6:
                     i.putExtra("GradiantNum", 6);
                     startActivity(i);

                     break;
              case R.id.button7:
                     Intent i1 = new Intent(this, ItemExample.class);
                     startActivity(i1);

                     break;
              case R.id.button8:
                     Intent i2 = new Intent(this, GradianColor.class);
                     startActivity(i2);


                     break;
              case R.id.button9:
                     Intent i3 = new Intent(this, GradianColor.class);
                     startActivity(i3);


                     break;
                    
              default:
                     break;
              }

       }

}

GradianColor.java
package com.example.gradiantexample;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.RelativeLayout;

public class GradianColor extends Activity {
       RelativeLayout layout;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_gradian_color);
              layout = (RelativeLayout) findViewById(R.id.ColorbgRL);

              int gradianType = 0;
              try {
                     Intent i = getIntent();
                     gradianType = i.getIntExtra("GradiantNum", 0);
              } catch (Exception e) {
                     e.printStackTrace();
              }

              switch (gradianType) {
              case 1:
                     layout.setBackgroundResource(R.drawable.background_a);
                     break;
              case 2:
                     layout.setBackgroundResource(R.drawable.background_b);
                     break;
              case 3:
                     layout.setBackgroundResource(R.drawable.background_c);
                     break;
              case 4:
                     layout.setBackgroundResource(R.drawable.background_d);

                     break;
              case 5:
              layout.setBackgroundResource(R.drawable.background_f);
                     break;
              case 6:
                     layout.setBackgroundResource(R.drawable.background_f);
                     break;
              default:
                     layout.setBackgroundResource(R.drawable.whitegradiant);
                     break;
              }

       }

}


ItemExample.java
package com.example.gradiantexample;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class ItemExample extends Activity {

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_item_example);
       }
}


activity_gradian_color.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/ColorbgRL"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  
</RelativeLayout>
activity_item_example.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/black">

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/whitegradiant"
        android:gravity="center"
        android:text="single Item " />

    <TextView
        android:id="@+id/TextView05"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/listitem_gradiant_2"
        android:gravity="center"
        android:text="ListItem " />

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/TextView05"
        android:background="@drawable/listitem_gradiant_2"
        android:gravity="center"
        android:text="ListItem " />

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView1"
        android:background="@drawable/list_item_gradient1"
        android:gravity="center"
        android:text="ListItem 2" />

    <TextView
        android:id="@+id/TextView07"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_above="@+id/TextView04"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="20dp"
        android:background="@drawable/list_item_gradiant_3"
        android:gravity="center"
        android:text="single Item " />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/TextView03"
        android:layout_marginTop="20dp"
        android:background="@drawable/list_item_gradient1"
        android:gravity="center"
        android:text="ListItem 2" />

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/TextView02"
        android:layout_marginTop="15dp"
        android:background="@drawable/topbar"
        android:gravity="center"
        android:text="ListItem 2" />

    <TextView
        android:id="@+id/TextView06"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/TextView01"
        android:background="@drawable/list_item_gradient1"
        android:gravity="center"
        android:text="ListItem 2" />

</RelativeLayout>

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/whitegradiant"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="2" >

        <Button
            android:id="@+id/button1"
            style="@style/ButtonText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/red_btn"
            android:text="Red" />

        <Button
            android:id="@+id/button2"
            style="@style/ButtonText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/green_btn"
            android:text="green" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="2" >

        <Button
            android:id="@+id/button3"
            style="@style/ButtonText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/blue_btn"
            android:text="blue" />

        <Button
            android:id="@+id/button4"
            style="@style/ButtonText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/black_btn"
            android:text="black" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="2" >

        <Button
            android:id="@+id/button5"
            style="@style/ButtonText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/yellew_btn"
            android:text="yellow" />

        <Button
            android:id="@+id/button6"
            style="@style/ButtonText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/purple_btn"
            android:text="purple" />
    </LinearLayout>

    <Button
        android:id="@+id/button7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/background_b"
        android:text="Gradiant Item Views" />

    <Button
        android:id="@+id/button8"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/button_bg"
        android:text="Sample Button 1" />

    <Button
        android:id="@+id/button9"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/button_bg_a"
       
        android:text="Sample Button 2" />

</LinearLayout>


Color.XML
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="greyMed">#C9C9C9</color>
    <color name="greyLgt">#ECECEC</color>

</resources>
styles.xml
<style name="ButtonText">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#ffffff</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">3dp</item>
    <item name="android:textSize">30dp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">5</item>
    <item name="android:shadowDy">5</item>
    <item name="android:shadowRadius">2</item>
</style>

AND HERE IS ALL GRADIENT BACKGROUNDS
Sorry for name :p it just put for test , now idont have time to change it

backaground_d.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFFFF"
        android:endColor="#00000000"
        android:angle="45"/>   
</shape>

background_a.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#ffffff" />

    <stroke
        android:width="1dp"
        android:color="#0B6138" />

    <gradient
        android:angle="0"
        android:centerColor="#FFFFFFFF"
        android:endColor="#0080FF"
        android:startColor="#81DAF5" />

    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />

    <corners android:radius="15px" />

</shape>
background_b.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
    android:startColor="#7faacaFF"
    android:endColor="#cfe1edFF"
    android:gradientRadius="326"
    android:type="radial"/>
</shape>
background_c.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="45"
        android:endColor="#00000000"
        android:startColor="#3B5998" />

</shape>
background_d.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:startColor="#e5eb43"
        android:endColor="#214209"
        android:type="radial"
        android:gradientRadius="326"
    />
</shape>
background_f.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="0"
        android:centerColor="#FFFFFFFF"
        android:endColor="#00000000"
        android:startColor="#00000000" />

</shape>
background.xml
       <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#77000000" />

    <corners android:radius="10dip" />

    <gradient
        android:angle="-90"
        android:endColor="#44FF0000"
        android:startColor="#CCFF0000" />

    <padding
        android:bottom="10dip"
        android:left="10dip"
        android:right="10dip"
        android:top="10dip" />

    <stroke
        android:width="1dip"
        android:color="#000000" >
    </stroke>
    </shape>
black_btn.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"><shape>
            <solid android:color="#343434" />

            <stroke android:width="1dp" android:color="#171717" />

            <corners android:radius="3dp" />

            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
        </shape></item>
    <item><shape>
            <gradient android:angle="270" android:endColor="#171717" android:startColor="#343434" />

            <stroke android:width="1dp" android:color="#171717" />

            <corners android:radius="4dp" />

            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
        </shape></item>

</selector>
blue_btn.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#449def" />
            <stroke
                android:width="1dp"
                android:color="#2f6699" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#449def"
                android:endColor="#2f6699"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#2f6699" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
button_bg_a.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="#65df35"
        android:startColor="#0d4e01" />

</shape>
button_bg_b.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!-- Gradient Bg for listrow -->
    <gradient
        android:angle="270"
        android:centerColor="#e7e7e8"
        android:endColor="#cfcfcf"
        android:startColor="#f1f1f2" />

</shape>

button_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
     android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/gradient_bg" />
    <item android:state_pressed="true"
        android:drawable="@drawable/gradient_bg_hover" />
    <item android:state_selected="true"
     android:state_pressed="false"
        android:drawable="@drawable/gradient_bg_hover" />
</selector>
gradient_bg_hover.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <gradient
      android:startColor="#78DDFF"
      android:centerColor="#16cedb"
      android:endColor="#09adb9"
      android:angle="270" />
</shape>

gradient_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <gradient
      android:startColor="#D5DDE0"
      android:centerColor="#e7e7e8"
      android:endColor="#CFCFCF"
      android:angle="270" />
</shape>

green_btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#70c656" />
            <stroke
                android:width="1dp"
                android:color="#53933f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#70c656"
                android:endColor="#53933f"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#53933f" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
list_item_gradiant_3.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <gradient
    android:startColor="@color/greyMed"
    android:endColor="@color/greyLgt"
    android:angle="135">
  </gradient>
</shape>


list_item_gradient1.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="90"
        android:endColor="#fff"
        android:startColor="#999"
        android:type="linear" />

</shape>
list_item_plane.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="@color/greyLgt"
        android:startColor="@color/greyMed" >
    </gradient>

</shape>
listitem_gradiant_2.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:centerColor="@color/greyLgt"
        android:endColor="@color/greyMed"
        android:startColor="@color/greyMed" >
    </gradient>

</shape>
<!--
“linear”. This is the default value. A linear gradient as the previous examples.
“radial”. It requires to specify the attribute gradientRadius which is a float value.
“sweep”. A sweeping line gradient.

-->

purple_btn.xml
 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#a276eb" />
            <stroke
                android:width="1dp"
                android:color="#6a3ab2" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#a276eb"
                android:endColor="#6a3ab2"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#6a3ab2" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
red_btn.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#ef4444" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#ef4444"
                android:endColor="#992f2f"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
topbar.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <stroke
        android:width="2dp"
        android:color="#FFFFFFFF" />

    <gradient
        android:angle="225"
        android:endColor="#DD2ECCFA"
        android:startColor="#DD000000" />

    <corners
        android:bottomLeftRadius="7dp"
        android:bottomRightRadius="7dp"
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp" />

</shape>

whitegradiant.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="90"
        android:endColor="#fff"
        android:startColor="#999"
        android:type="linear" />

</shape>
yellew_btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#f3ae1b" />
            <stroke
                android:width="1dp"
                android:color="#bb6008" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#f3ae1b"
                android:endColor="#bb6008"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#bb6008" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

You can download complete example from here 
Happy Coddddding :)