Toast
is a popup visible for a few seconds can be used to notify user with a message. Toast
is being used to give feedback about an action has been performed in an application. Most noticeable factor that i noticed about the Toast
is that it is independent from Activity. As a result of this Toast
will be showing even after Activity has been destroyed/minimized. Because of this behavior Toast
is being used in cases where message needs to be keep visible during the Activity switch.
It is a handy popup that can be shown with a single line of code. By default it is black popup which will be shown at the bottom of the screen. Customizing the toast includes changing position and view. Here in this article i will show how to create our own Toast
popup.
Steps For Customization
- 1. Create a layout for toast
- 2. Instantiate Toast object with created layout
- 3. Show it
Background Drawable For Toast View
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#060c5c" /> <corners android:radius="5dp" /> </shape>
Let’s Add A Image To Toast View
Create Layout For Toast
toast_layout.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="48dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:layout_margin="5dp" android:background="@drawable/toast_bg" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/ic_action_info_outline" /> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is a custom toast!!" android:layout_gravity="center" android:textColor="#fff" /> </LinearLayout> </RelativeLayout>
In Activity Class
package customtoast.devdeeds.com.customtoast; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnShowToast = (Button) findViewById(R.id.show_toast); btnShowToast.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showToast(); } }); } public void showToast() { View toastLayout = getLayoutInflater().inflate(R.layout.toast_layout, null); Toast toast = new Toast(getApplicationContext()); toast.setView(toastLayout); toast.setDuration(Toast.LENGTH_LONG); toast.show(); } }
Create Layout XML For Activity
<?xml version="1.0" encoding="utf-8"?> <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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="customtoast.devdeeds.com.customtoast.MainActivity"> <Button android:id="@+id/show_toast" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="Show Custom Toast" android:layout_centerInParent="true" /> </RelativeLayout>