文档章节

自定义多功能toast

colorchen
 colorchen
发布于 2015/06/13 18:40
字数 229
阅读 7
收藏 0

/**

 * 吐司工具

 *

 * @author color

 */

public class ToastUtils {

    private static Toast mToast;

    private static String lastToast = "";

    private static long lastToastTime;


    private ToastUtils() {


    }


    public static void show(Context context, String msg) {

        if (mToast == null) {

            mToast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);

        } else {

            mToast.setText(msg);

            mToast.setDuration(Toast.LENGTH_SHORT);

        }

        mToast.show();

    }


//    public static void showIcon(Context context, String msg) {

//        mToast = Toast.makeText(context,

//                msg, Toast.LENGTH_LONG);

//        mToast.setGravity(Gravity.CENTER, 0, 0);

//        LinearLayout toastView = (LinearLayout) mToast.getView();

//        ImageView imageCodeProject = new ImageView(context);

//        imageCodeProject.setImageResource(R.drawable.wz_toast_logo);

//        toastView.addView(imageCodeProject, 0);

//        mToast.show();

//    }


    public static void showToastShort(Context context,String message) {

        showBaseToast(message, Toast.LENGTH_SHORT, 0, Gravity.BOTTOM, context);

    }


    public static void showToastIcon(Context context,String message, int icon) {

        showBaseToast(message, Toast.LENGTH_LONG, icon, Gravity.CENTER, context);

    }

    private static void showBaseToast(String message, int duration, int icon, int gravity, Context context) {


        if (!TextUtils.isEmpty(message)) {

            long time = System.currentTimeMillis();

            if (!message.equalsIgnoreCase(lastToast)

                    || Math.abs(time - lastToastTime) > 2000) {

                View view = LayoutInflater.from(context).inflate(R.layout.wz_toast_view, null);

                ((TextView) view.findViewById(R.id.tvForToast)).setText(message);

                if (icon != 0) {

                    ((ImageView) view.findViewById(R.id.ivForToast))

                            .setImageResource(icon);

                    (view.findViewById(R.id.ivForToast))

                            .setVisibility(View.VISIBLE);

                }else{

                    (view.findViewById(R.id.ivForToast))

                            .setVisibility(View.GONE);

                }

                Toast toast = new Toast(context);

                toast.setView(view);

                if (gravity == Gravity.CENTER) {

                    toast.setGravity(gravity, 0, 0);

                } else {

                    toast.setGravity(gravity, 0, 35);

                }


                toast.setDuration(duration);

                toast.show();

                lastToast = message;

                lastToastTime = System.currentTimeMillis();

            }

        }

    }


    public void cancelToast() {

        if (mToast != null) {

            mToast.cancel();

        }

    }


}


© 著作权归作者所有

colorchen
粉丝 2
博文 29
码字总数 12138
作品 0
郑州
程序员
私信 提问
v-dialogs v1.10 发布,基于 Vue2 的多功能弹出窗口组件

基于 Vue2 的多功能弹出窗口组件 v1.10.0 版本发布,更新内容: 修复连续弹出和关闭窗口时,最后一个窗口不会被关闭的问题 窗口增加部分动画效果 增加 singletonKey 配置项目,用于设置全局唯...

TerryZ
2018/06/08
1K
1
Android自定义吐司Toast:自定义样式、自定义显示时长

Android自定义吐司Toast:自定义样式、自定义显示时长 鉴于系统toast,一般都是黑色背景且位于界面底部,我们看到有些app弹出的toast,有的在界面中间、有的在界面顶部,还有的是带图片的,那...

天外来客1101
2016/11/23
141
0
Android开发Toast特效详解

在Android开发中,Toast主要用于向用户显示提示消息,下面我们来具体看看Toast特效5种效果,你也可以根据自己的需求,自定义你需要的特效。 1.默认效果 代码: Toast.makeText(getApplicatio...

maiziedu
2015/01/21
886
2
自定义Toast样式,位置

Android自带的Toast效果实在是不敢恭维,没办法,自己动手丰衣足食,想定义什么样的就定义什么样的,有技术就是任性,接下来自定义Toast步骤: 1,新建Toast对象: 2,利用layoutInflater获取...

ldfowjemr
2016/02/03
135
0
消息模式Toast.makeText的几种常见用法

Toast 是一个 View 视图,快速的为用户显示少量的信息。 Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于 一些帮助 / 提示。 Toast 最常见的创...

ForingY
2016/08/01
5
0

没有更多内容

加载失败,请刷新页面

加载更多

Visual Paradigm 教程[UML]:如何绘制封装图?(上)

下载Visual Paradigm最新试用版 查看本教程视频文件 在项目开始时,您只有有限数量的图表,一切都简单而美观。然而,当时间过得匆匆时,已经创建了越来越多的图表,并且它们开始变得无法管理...

xiaochuachua
44分钟前
2
0
Pure-ftpd服务安装及虚拟用户设置

安装 sudo apt-get install pure-ftpd 虚拟用户设置 首先,可以在系统中添加相应的用户和组,如用户ftpuser 和组ftpgroup ,专门用来管理ftp服务。也可以是能登录系统的用户,但最好是不能登...

Gm_ning
46分钟前
1
0
一位面试了阿里,滴滴,网易,蚂蚁金服,最终有幸去了网易的Java程序员【面试题分享】

前言 15年毕业到现在也近三年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中... 最终有幸去...

Java领航员
47分钟前
3
0
“大团队”和“敏捷开发”,谁说不可兼得?

阿里妹导读:当小团队的产出跟不上业务需要,团队就面临规模化的问题。从1个团队到3个团队,仍可以通过简单的团队沟通保持高效协作。当产品复杂到需要5个以上团队同时开发时,我们需要一定的...

阿里云云栖社区
51分钟前
1
0
基于虹软人脸识别Demo android人脸识别

参加一个比赛,指定用虹软的人脸识别功能,奈何虹软人脸识别要自己建人脸库,不然就只能离线用,总不能装个样子,简单看了下虹软Demo,下面决定用这种简单方法实现在线人脸识别: Android端(...

是哇兴哥棒棒哒
56分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部