How to change the default message color and color for toasts in the background in Android?

I want to create a toast message with a white background color and a black message color. My toast post:

Toast.makeText(Logpage.this, "Please Give Feedback...", 3000).show(); 

I wanted to create it in another method, not in onCreate() .

+26
source share
11 answers

You can create your own message as shown below:

 Toast toast = new Toast(context); toast.setDuration(Toast.LENGTH_LONG); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.your_custom_layout, null); toast.setView(view); toast.show(); 

One text view that you can put in the layout file and set the desired background and text color.

You can also do the following for which you do not need an additional layout file:

 Toast toast = Toast.makeText(context, R.string.string_message_id, Toast.LENGTH_LONG); View view = toast.getView(); view.setBackgroundResource(R.drawable.custom_background); TextView text = (TextView) view.findViewById(android.R.id.message); /*Here you can do anything with above textview like text.setTextColor(Color.parseColor("#000000"));*/ toast.show(); 
+62
source

Change toast colors without any additional layouts, 2018

I found that this is a very simple way to change the color of the actual background of the toast image, as well as the color of the text, this does not require any additional layouts or any XML changes:

 Toast toast = Toast.makeText(context, message, duration); View view = toast.getView(); //Gets the actual oval background of the Toast then sets the colour filter view.getBackground().setColorFilter(YOUR_BACKGROUND_COLOUR, PorterDuff.Mode.SRC_IN); //Gets the TextView from the Toast so it can be editted TextView text = view.findViewById(android.R.id.message); text.setTextColor(YOUR_TEXT_COLOUR); toast.show(); 
+47
source

Change the default value. Toast Text color and background color. Try How to do it.

  Toast toast = Toast.makeText(MainActivity.this, "Please Give Feedback...", Toast.LENGTH_LONG); View view = toast.getView(); //To change the Background of Toast view.setBackgroundColor(Color.TRANSPARENT); TextView text = (TextView) view.findViewById(android.R.id.message); //Shadow of the Of the Text Color text.setShadowLayer(0, 0, 0, Color.TRANSPARENT); text.setTextColor(Color.BLACK); text.setTextSize(Integer.valueOf(getResources().getString(R.string.text_size))); toast.show(); 
+11
source

You can set up your own toast for Android using the following code

 /** * ShowToast */ public class ShowToast { public ShowToast(Context context, String info) { Toast toast = Toast.makeText(context, Html.fromHtml("<font color='#e3f2fd' ><b>" + info + "</b></font>"), Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 0, 0); toast.show(); } } 

If you want to change the background you have to use a custom layout in the toast

+6
source

Create a toast.xml layout file as to how your toast should look like this:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/background_dark"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a custom toast." android:textColor="@android:color/white" android:layout_gravity="center_vertical" /> </LinearLayout> 

To show a toast in a java file, enter the code below:

 public void showCustomAlert() { Context context = getApplicationContext(); // Create layout inflator object to inflate toast.xml file LayoutInflater inflater = getLayoutInflater(); // Call toast.xml file for toast layout View toast = inflater.inflate(R.layout.toast, null); Toast toast = new Toast(context); // Set layout to toast toast.setView(toast); toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.show(); } 
+5
source
 Toast toast= Toast.makeText(YOUR ACTIVITY NAME ,Toast.LENGTH_SHORT); View view =toast.getView(); view.setBackgroundColor(Color.GREEN); //any color your want toast.show(); 
+3
source

Kotlin Version:

  val toast = Toast.makeText(this, getString(R.string.back_again), Toast.LENGTH_SHORT) val view = toast.view view.background.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN) toast.show() 
+2
source
 static void CustomToast(Context context, String text, int duration, @Nullable Integer backgroundColor, @Nullable Integer textColor){ Toast t = Toast.makeText(context,text,duration); if (backgroundColor != null) t.getView() .setBackgroundTintList(ColorStateList.valueOf(backgroundColor)); if (textColor != null) ((TextView)t.getView().findViewById(android.R.id.message)) .setTextColor(textColor); t.show(); } 
+1
source

Change the default toast color and background color in JAVA. In this way, you can change the color of the toast message and the background color.

  Toast toast=Toast.makeText(MainActivity.this,"Signin button is clicked.",Toast.LENGTH_SHORT); View view =toast.getView(); view.setBackgroundColor(Color.GREEN); TextView toastMessage = (TextView) toast.getView().findViewById(android.R.id.message); toastMessage.setTextColor(Color.RED); toast.show(); 

Just change the color of the toast text.

  Toast toast = Toast.makeText(getApplicationContext(), "Signup button is clicked.",Toast.LENGTH_SHORT); TextView toastMessage=(TextView) toast.getView().findViewById(android.R.id.message); toastMessage.setTextColor(Color.BLUE); toast.show(); 
+1
source

By adding @AndroidKiller to the answer, you can also set gravity and custom TextView among other things:

 Toast toast = Toast.makeText(context, context.getResources().getString(resID), Toast.LENGTH_LONG); LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE ); View toastView = li.inflate(R.layout.toast_hint_layout, null); TextView text = (TextView) toastView.findViewById(R.id.hint_text_tv); text.setText(resID); toast.setView(toastView); toast.setDuration(Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toastView.setBackgroundResource(R.drawable.toast_9_patch); toast.show(); 

Please note that your background resource must have nine PNG patches

You can even put an ImageView and multiple TextView in XML as follows:

 <LinearLayout android:id="@+id/layout_root" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:layout_width="32dp" android:layout_height="43dp" android:src="@drawable/lightbulb" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:orientation="vertical" > <TextView android:id="@+id/hint_text_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ccc" android:textSize="14dp" /> <TextView android:id="@+id/hint_text_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="(disable hints in preferences)" android:textColor="#555" android:textSize="11dp" /> </LinearLayout> </LinearLayout> 
0
source

Change default message color and background color in JAVA ......

/////// Message toast and background color change ......... Toast toast = Toast.makeText (MainActivity.this, "the login button is pressed.", Toast.LENGTH_SHORT); View view = toast.getView (); view.setBackgroundColor (Color.GREEN); TextView toastMessage = (TextView) toast.getView (). FindViewById (android.R.id.message); toastMessage.setTextColor (Color.RED); toast.show ();

/////// Just changing the color of the message ........... Toast toast = Toast.makeText (getApplicationContext (), "Registration button pressed.", Toast.LENGTH_SHORT);

  TextView toastMessage=(TextView) toast.getView().findViewById(android.R.id.message); toastMessage.setTextColor(Color.BLUE); toast.show(); 
0
source

All Articles