欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android自定义Toast样式(附工具类)

程序员文章站 2022-03-10 15:26:31
Android自定义Toast样式(附工具类)效果图:工具类ToastUtil.javaToastUtil.javapublic class ToastUtil { /** * Toast类型 */ public static enum Type{ // 成功 SUCCEED, // 错误 ERROR, // 信息,通常 POINT, // 警告...

Android自定义Toast样式(附工具类)

效果图:

Android自定义Toast样式(附工具类)

工具类ToastUtil.java

ToastUtil.java

public class ToastUtil {

    /**
     * Toast类型
     */
    public static enum Type{
        // 成功
        SUCCEED,
        // 错误
        ERROR,
        // 信息,通常
        POINT,
        // 警告
        WARNING;
    }

    /**
     * 系统的Toast
     *
     * @param info
     */
    public static void showToast(String info){
        Toast.makeText(App.getContext(), info, Toast.LENGTH_SHORT).show();
    }

    /**
     * 各种类型的 Toast
     *
     * @param info
     * @param type
     */
    public static void showCus(String info, Type type){
        Toast toast = new Toast(App.getContext());
        View view = null;
        switch (type){
            case POINT:
                // 提示型Toast
               view = LayoutInflater.from(App.getContext()).inflate(R.layout.layout_toast_point, null);
               break;
            case SUCCEED:
                // 操作成功Toast
                view = LayoutInflater.from(App.getContext()).inflate(R.layout.layout_taost_succeed, null);
                break;
            case ERROR:
                // 错误Toast
                view = LayoutInflater.from(App.getContext()).inflate(R.layout.layout_toast_error,null);
                break;
            case WARNING:
                // 警告Toast
                view = LayoutInflater.from(App.getContext()).inflate(R.layout.layout_toast_warning,null);
                break;
            default:
                break;
        }

        if(view != null) {
            TextView tv = view.findViewById(R.id.toast_info);
            tv.setText(info);
            toast.setDuration(Toast.LENGTH_SHORT);
            // 这里是修改Toast的显示位置
            // toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 120);
            toast.setView(view);
            toast.show();
        }else {
            showToast(info);
        }
    }

用到的四种布局:

(提示型)layout_toast_point.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_toast_point"
    >
    <ImageView
        android:id="@+id/img"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:background="@drawable/point"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        />
    <TextView
        android:id="@+id/toast_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提示型"
        android:textColor="#ffffff"
        android:paddingTop="11dp"
        android:paddingBottom="12dp"
        android:paddingRight="11dp"
        android:paddingLeft="5dp"
        android:textSize="15sp"
        android:layout_toRightOf="@+id/img"
        android:layout_centerVertical="true"
        />
</RelativeLayout>

(操作成功型)llayout_taost_succeed.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_toast_succeed"
   >
    <ImageView
        android:id="@+id/img"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:background="@drawable/succeed"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        />
    <TextView
        android:id="@+id/toast_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="asdadasdasdasdasdasdsa"
        android:textColor="#ffffff"
        android:paddingTop="11dp"
        android:paddingBottom="12dp"
        android:paddingRight="11dp"
        android:paddingLeft="5dp"
        android:textSize="15sp"
        android:layout_toRightOf="@+id/img"
        android:layout_centerVertical="true"
        />
</RelativeLayout>

(错误型)layout_toast_error.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_toast_error"
   >
    <ImageView
        android:id="@+id/img"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:background="@drawable/error"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        />
    <TextView
        android:id="@+id/toast_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="asdadasdasdasdasdasdsa"
        android:textColor="#ffffff"
        android:paddingTop="11dp"
        android:paddingBottom="12dp"
        android:paddingRight="11dp"
        android:paddingLeft="5dp"
        android:textSize="15sp"
        android:layout_toRightOf="@+id/img"
        android:layout_centerVertical="true"
        />
</RelativeLayout>

(警告型)layout_toast_warning.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_toast_warning"
    >
    <ImageView
        android:id="@+id/img"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:background="@drawable/warning"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        />
    <TextView
        android:id="@+id/toast_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="asdadasdasdasdasdasdsa"
        android:textColor="#ffffff"
        android:paddingTop="11dp"
        android:paddingBottom="12dp"
        android:paddingRight="11dp"
        android:paddingLeft="5dp"
        android:textSize="15sp"
        android:layout_toRightOf="@+id/img"
        android:layout_centerVertical="true"
        />
</RelativeLayout>

本文地址:https://blog.csdn.net/C_biubiubiu/article/details/110660819