Tuesday, 10 September 2013

Plain Toast

Custom Toast

Custom Toast

Custom Toast

Create new Android Project
Project Name: typesoftoasts
//tested from 2.3.3 to current android sdk 
Build Target: Android 2.3.3   //or greater than that
Application Name: Types Of Toasts
Package Name: com.shaikhhamadali.blogspot.typesoftoast
Create layout file: activity_toast_types

1.create layout:


  • activity_toast_types:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ToastTypes" >

    <TextView
        android:id="@+id/tVHeading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Plain and Custom Toast demo"
        android:textStyle="bold|italic"
        android:textColor="#6A96B0"
        android:textSize="50dp" />

    <Button
        android:id="@+id/btnPlain"
        android:layout_width="350dp"
        android:layout_height="100dp"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="48dp"
        android:layout_marginTop="74dp"
        android:text="Plain Toast"
        android:textSize="40dp" />

    <Button
        android:id="@+id/btnCustom"
        android:layout_width="350dp"
        android:layout_height="100dp"
        android:layout_alignRight="@+id/btnPlain"
        android:layout_below="@+id/button1"
        android:layout_marginTop="200dp"
        android:text="Custom Toast"
        android:textSize="40dp" />

</RelativeLayout>

  • customized_toast:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/customizedToast"
       android:orientation="vertical"     
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/gradiant"
       android:layout_margin="25dip">
       <LinearLayout 
              android:layout_margin="5dip"
              android:orientation="horizontal"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content">
              <ImageView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:src="@drawable/celebration"/>
             <LinearLayout
                    android:orientation="vertical"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:gravity="center">
                    <TextView
                        android:paddingLeft="20dip"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:id="@+id/tVToast"
                        android:textColor="#ffffff"
                        android:textSize="25sp"
                        android:textStyle="bold"
                        android:gravity="center"/>
            </LinearLayout>
      </LinearLayout>
</LinearLayout>


  • gradiant:

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient 
android:type="linear"
android:centerX="50%" 
android:startColor="#FF003333" 
android:centerColor="#FF05C1FF" 
android:endColor="#FF003333" 
android:angle="270"/>
<!-- <gradient
    android:centerColor="#FF05C1FF"
    android:centerX="50%"
    android:centerY="50%"
    android:endColor="#FF003333"
    android:gradientRadius="50"
    android:startColor="#FF003333"
    android:type="radial" /> -->

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

</shape>

2. code of activity:


package com.shaikhhamadali.blogspot.typesoftoast;

import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class ToastTypes extends Activity {

 Button btnPlain,btnCustom;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_toast_types);
  
  
  btnPlain=(Button)findViewById(R.id.btnPlain);
  btnPlain.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    //create instance of toast make text (context,text,time);
    Toast t=Toast.makeText(getApplicationContext(), "welcome to hamad's blog", Toast.LENGTH_SHORT);
    //show toast
    t.show();
    
    
   }
  });
  btnCustom=(Button)findViewById(R.id.btnCustom);
  btnCustom.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    //create instance of inflater
    LayoutInflater inflater = getLayoutInflater();
    //create instance of View and inflate out toast layout in view
    View layout = inflater.inflate(R.layout.customized_toast, (ViewGroup) findViewById(R.id.customizedToast));
    //set your desired text to out toast text view
    ((TextView) layout.findViewById(R.id.tVToast)).setText("welcome to hamad's blog.");
    //create instance of Toast
    Toast toast = new Toast(getApplicationContext());
    //set time duration;
    toast.setDuration(Toast.LENGTH_SHORT);
    //set view of toast that is custom toast layout
    toast.setView(layout);
    //show toast
    toast.show();
   }
  });
  
 }
}

also can use toast like this (for plain Toast):

Toast.makeText(getApplicationContext(), "welcome to hamad's blog", Toast.LENGTH_SHORT).show();

3. note that:

  • you can use these on button on click,on action_down,on the fly etc.
  • Toast.LENGTH_SHORT duration is about 2 seconds or 2000 mili seconds.
  • Toast.LENGTH_LONG duration is about 3.5 seconds and 3500 mili seconds.
  • you can set the typeface of your toast text view.
  • you can use image as background.
  • you can apply custom shape to your toast.
  • to generate custom shape online i have added new link in useful links named as "Gradient Shape Generator Online" (android patterns).

  4. conclusion:


  • Some information about basic/simple Toast.
  • Some information about Custom Toast.
  • Know how to create your custom generated toast.
  • know how to show simple toast in different ways.

  5. About the post:


  • The code seems to explain itself due to comments, if you have any question you can ask too!
  •  Don’t mind to write a comment whatever you like to ask, to know,to suggest or recommend.
  •  Hope you enjoy it!

  6. Source Code:
        you can download the source code here

Cheers,

Hamad Ali Shaikh