文档章节

自定义多功能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
博文 24
码字总数 8933
作品 0
郑州
程序员
私信 提问
v-dialogs v1.10 发布,基于 Vue2 的多功能弹出窗口组件

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

TerryZ
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

没有更多内容

加载失败,请刷新页面

加载更多

border实现等高布局

效果图 实现上图效果的全部html+css代码 <div class="box"> <nav> <h3 class="nav">导航1</h3> <h3 class="nav">导航2</h3> </nav> <section> <div cla......

呵呵闯
17分钟前
0
0
MaxCompute 表(Table)设计规范

表的限制项 表(Table)设计规范 表设计主要目标 表设计的影响 表设计步骤 表数据存储规范 按数据分层规范数据生命周期 按数据的变更和历史规范数据的保存 数据导入通道与表设计 分区设计与逻辑...

阿里云云栖社区
23分钟前
0
0
局域网共享文件读写的实现方式

代码片段 首先是设置共享目录,支持用户和密码等权限控制 然后我们可以使用Windows资源管理器操作共享目录下的文件 这中间隐藏了资源管理器帮我们建立目录映射和连接的过程,如果设置了用户名...

夏至如沫
32分钟前
4
0
Elasticsearch安装与配置

一、Docker安装ES 开发模式 可以使用以下命令快速启动Elasticsearch以进行开发或测试: $ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" docker.ela...

吴伟祥
39分钟前
3
0
移动页面滚动穿透解决方案(荐)

移动页面滚动穿透解决方法目前有多种解决方案,我介绍下几种方案: 解决方案1:阻止冒泡。 //关键代码$(".sliders,.modals").on("touchmove",function(event){    event.preventDefau...

壹峰
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部