9.10 安卓常用工具类之一Toast --- 消息提示框

本文介绍了一个高度定制化的Toast工具类,提供了多种显示消息提示框的方法,包括短时间、长时间及自定义显示时间,并支持自定义视图、位置及带图片的文字Toast。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Toast  工具类  消息提示框

 

package com.xm.mygps8;
/* 
 * 项 目 名:  MyGPS8 
 * 包    名:  com.xm.mygps8
 * 文 件 名:  T
 * 创 建 者:  LW
 * 创建时间:  2018/7/2 0002 17:02
 * 描    述: Toast  工具类
 *
 */

import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

public class T {


        private static boolean isShow = true;//默认显示
        private static Toast mToast = null;//全局唯一的Toast

        /*private控制不应该被实例化*/
        private T() {
            throw new UnsupportedOperationException("不能被实例化");
        }

        /**
         * 全局控制是否显示Toast
         * @param isShowToast
         */
        public static void controlShow(boolean isShowToast){
            isShow = isShowToast;
        }

        /**
         * 取消Toast显示
         */
        public void cancelToast() {
            if(isShow && mToast != null){
                mToast.cancel();
            }
        }

        /**
         * 短时间显示Toast
         *
         * @param context
         * @param message
         */
        public static void showShort(Context context, CharSequence message) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
                } else {
                    mToast.setText(message);
                }
                mToast.show();
            }
        }

        /**
         * 短时间显示Toast
         *
         * @param context
         * @param resId 资源ID:getResources().getString(R.string.xxxxxx);
         */
        public static void showShort(Context context, int resId) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);
                } else {
                    mToast.setText(resId);
                }
                mToast.show();
            }
        }

        /**
         * 长时间显示Toast
         *
         * @param context
         * @param message
         */
        public static void showLong(Context context, CharSequence message) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, Toast.LENGTH_LONG);
                } else {
                    mToast.setText(message);
                }
                mToast.show();
            }
        }

        /**
         * 长时间显示Toast
         *
         * @param context
         * @param resId 资源ID:getResources().getString(R.string.xxxxxx);
         */
        public static void showLong(Context context, int resId) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, resId, Toast.LENGTH_LONG);
                } else {
                    mToast.setText(resId);
                }
                mToast.show();
            }
        }

        /**
         * 自定义显示Toast时间
         *
         * @param context
         * @param message
         * @param duration 单位:毫秒
         */
        public static void show(Context context, CharSequence message, int duration) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, duration);
                } else {
                    mToast.setText(message);
                }
                mToast.show();
            }
        }

        /**
         * 自定义显示Toast时间
         *
         * @param context
         * @param resId 资源ID:getResources().getString(R.string.xxxxxx);
         * @param duration 单位:毫秒
         */
        public static void show(Context context, int resId, int duration) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, resId, duration);
                } else {
                    mToast.setText(resId);
                }
                mToast.show();
            }
        }

        /**
         * 自定义Toast的View
         * @param context
         * @param message
         * @param duration 单位:毫秒
         * @param view 显示自己的View
         */
        public static void customToastView(Context context, CharSequence message, int duration,View view) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, duration);
                } else {
                    mToast.setText(message);
                }
                if(view != null){
                    mToast.setView(view);
                }
                mToast.show();
            }
        }

        /**
         * 自定义Toast的位置
         * @param context
         * @param message
         * @param duration 单位:毫秒
         * @param gravity
         * @param xOffset
         * @param yOffset
         */
        public static void customToastGravity(Context context, CharSequence message, int duration,int gravity, int xOffset, int yOffset) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, duration);
                } else {
                    mToast.setText(message);
                }
                mToast.setGravity(gravity, xOffset, yOffset);
                mToast.show();
            }
        }

        /**
         * 自定义带图片和文字的Toast,最终的效果就是上面是图片,下面是文字
         * @param context
         * @param message
         * @param iconResId 图片的资源id,如:R.drawable.icon
         * @param duration
         * @param gravity
         * @param xOffset
         * @param yOffset
         */
        public static void showToastWithImageAndText(Context context, CharSequence message, int iconResId,int duration,int gravity, int xOffset, int yOffset) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, duration);
                } else {
                    mToast.setText(message);
                }
                mToast.setGravity(gravity, xOffset, yOffset);
                LinearLayout toastView = (LinearLayout) mToast.getView();
                ImageView imageView = new ImageView(context);
                imageView.setImageResource(iconResId);
                toastView.addView(imageView, 0);
                mToast.show();
            }
        }

        /**
         * 自定义Toast,针对类型CharSequence
         * @param context
         * @param message
         * @param duration
         * @param view
         * @param isGravity true,表示后面的三个布局参数生效,false,表示不生效
         * @param gravity
         * @param xOffset
         * @param yOffset
         * @param isMargin true,表示后面的两个参数生效,false,表示不生效
         * @param horizontalMargin
         * @param verticalMargin
         */
        public static void customToastAll(Context context, CharSequence message, int duration,View view,boolean isGravity,int gravity, int xOffset, int yOffset,boolean isMargin,float horizontalMargin, float verticalMargin) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, message, duration);
                } else {
                    mToast.setText(message);
                }
                if(view != null){
                    mToast.setView(view);
                }
                if(isMargin){
                    mToast.setMargin(horizontalMargin, verticalMargin);
                }
                if(isGravity){
                    mToast.setGravity(gravity, xOffset, yOffset);
                }
                mToast.show();
            }
        }

        /**
         * 自定义Toast,针对类型resId
         * @param context
         * @param resId
         * @param duration
         * @param view :应该是一个布局,布局中包含了自己设置好的内容
         * @param isGravity true,表示后面的三个布局参数生效,false,表示不生效
         * @param gravity
         * @param xOffset
         * @param yOffset
         * @param isMargin true,表示后面的两个参数生效,false,表示不生效
         * @param horizontalMargin
         * @param verticalMargin
         */
        public static void customToastAll(Context context, int resId, int duration, View view, boolean isGravity, int gravity, int xOffset, int yOffset, boolean isMargin, float horizontalMargin, float verticalMargin) {
            if (isShow){
                if (mToast == null) {
                    mToast = Toast.makeText(context, resId, duration);
                } else {
                    mToast.setText(resId);
                }
                if(view != null){
                    mToast.setView(view);
                }
                if(isMargin){
                    mToast.setMargin(horizontalMargin, verticalMargin);
                }
                if(isGravity){
                    mToast.setGravity(gravity, xOffset, yOffset);
                }
                mToast.show();
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值