Change Android Toast background color

You must have seen that by default we get a dark gray kind of background color for a toast message that is displayed on the Android Activity Screen (may vary depending upon what flavor of Android OS you are using). If you want to develop a custom Toast message with a color combination that suits your app design then we can do it programmatically using setBackgroundResource() provided by the Toast Class. Let's see an example, we will change the background color to Yellow and the toast text color to white. Below is an example in both Java and Kotlin.

Custom toast color
Custom toast color

We need to create a drawable XML file to achieve this, we will create toast_drawable.xml and store it in any of the drawable folders under res. We will add a solid tag to set the background color.

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

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

</shape>
File : MainActivity.java
package com.code2care.toast;
	
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {

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

    public void displayToast(View view) {
    	
    	Toast toast = Toast.makeText(getApplicationContext(),
    	        "Custom toast background color",
    	        Toast.LENGTH_SHORT);
    	
    	View toastView = toast.getView();
    	toastView.setBackgroundResource(R.drawable.toast_drawable);
    	toast.show();
    }
}
File : MainActivity.kt
package com.code2care.toast

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Toast

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun displayToast(view: View) {
        val toast = Toast.makeText(applicationContext, "Custom toast background color", Toast.LENGTH_SHORT)
        val toastView = toast.view
        toastView?.setBackgroundResource(R.drawable.toast_drawable)
        toast.show()
    }
}

Comments & Discussion

Facing issues? Have questions? Post them here! We're happy to help!