How to add a custom styled Toast in Android

A Toast is a feedback message. It takes a very little space for displaying and it is displayed on top of the main content of an activity, and only remains visible for a short time period.

This article explains how to create Custom Toast messages, which has custom background, image, icon, etc, which are not provided by the original Toast library.



In this article, Toasty library of JitPack gradle is used to create a custom toast for the user, as it is a very common library and is used by many apps already.

  1. Add the support Library in your root build.gradle file (not in module build.gradle file). This library jitpack is a novel package repository. It is made for JVM so that any library which is present in github and bigbucket can be directly used in the application.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    allprojects {
        repositories {
            maven {
                url "https://jitpack.io
            }
        }
    }

    chevron_right

    
    

  2. Add the support Library in your module’s build.gradle file and add dependency in the dependencies section. This dependency is added so that directly different styles of toast can be used in the application.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    dependencies {
             implementation 'com.github.GrenderG:Toasty:1.4.2'
    }

    chevron_right

    
    

  3. Now add the following code in the activity_main.xml file. This code adds five buttons in the activity. Each button is used to call differnt style of toasts.

    activity_main.xml

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
      
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_gravity="center"
            android:orientation="vertical">
      
            <Button
                android:layout_margin="10dp"
                android:id="@+id/button_warning"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="showToast"
                android:text="show warning toast" />
      
            <Button
                android:layout_margin="10dp"
                android:id="@+id/button_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="showToast"
                android:text="show info toast" />
      
            <Button
                android:layout_margin="10dp"
                android:id="@+id/button_success"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="showToast"
                android:text="show success toast" />
      
            <Button
                android:layout_margin="10dp"
                android:id="@+id/button_error"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="showToast"
                android:text="show error toast" />
      
            <Button
                android:layout_margin="10dp"
                android:id="@+id/button_normal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="showToast"
                android:text="show normal toast with an icon" />
        </LinearLayout>
    </RelativeLayout>

    chevron_right

    
    

  4. Now add the following code in the MainActivity.java file. Now on clicking any button the showToast() function is started and corresponding Toast is displayed.

    MainActivity.java

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    package org.geeksforgeeks.gfgToast;
      
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.content.ContextCompat;
      
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Toast;
      
    import es.dmoral.toasty.Toasty;
      
    public class MainActivity
        extends AppCompatActivity {
      
        @Override
        protected void onCreate(
            Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
      
        // We assign this method
        // on OnClick() method
        // in activity_main.xml file.
        public void showToast(View v)
        {
            switch (v.getId()) {
      
            // For Error type Toast
            case R.id.button_error:
                Toasty.error(this,
                             "This is an error Toast",
                             Toast.LENGTH_SHORT)
                    .show();
                break;
      
            // For Success type Toast
            case R.id.button_success:
                Toasty.success(this,
                               "This is a success Toast",
                               Toast.LENGTH_SHORT)
                    .show();
                break;
      
            // For Info type Toast
            case R.id.button_info:
                Toasty.info(this,
                            "This is an info Toast",
                            Toast.LENGTH_SHORT)
                    .show();
                break;
      
            // For Warning type Toast
            case R.id.button_warning:
                Toasty.warning(this,
                               "This is a warning Toast",
                               Toast.LENGTH_SHORT)
                    .show();
                break;
      
            // For Norma type Toast
            // with an icon
            case R.id.button_normal:
                Toasty.normal(
                          this,
                          "This is a normal Toast",
                          Toast.LENGTH_SHORT,
                          ContextCompat
                              .getDrawable(
                                  this,
                                  R.drawable.ic_android_black_24dp))
                    .show();
                break;
            }
        }
    }

    chevron_right

    
    

Output:

Attention reader! Don’t stop learning now. Get hold of all the important Java and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


3


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.