自定义一个喜欢的Toast

前言:

本人是第一次写技术博客,如果写的不好,望大家勿喷,嘻嘻!

写博客的缘由:

因为自己最近有那么一种感觉,以前虽然这个知识点学习过或者工作遇到的问题并且得到解决了,但是随着时间的推移,造成好多知识点都渐渐忘记的结果。到头来你就会发现当再次遇到这个问题或知识点时,似乎有点陌生,就像背英语单词一样,它认识你,你不认识它一样。还有另一个原因,那就是深感自己的理解能力和记忆能力有限,必须画画流程图和做下笔记。基于这两点,我决定点燃起我对写技术博客的欲望。写博客有以下好处:

1,随时记录下常用的知识点

 2,查漏补缺,方便记忆

3,做技术总结

正文:

好了,废话不说了,进入今天的主题吧......

大家都用过toast(吐司)吧,作用呢,就是反馈用户的信息。

普通用法,看如下代码:

public void showToast() {

Toast.makeText(getActivity(),"哈哈我是第一个吐司", Toast.LENGTH_SHORT).show();

}


自定义一个喜欢的Toast_第1张图片

但是这种写法有问题,当重复点击这两个按钮,提示会不断重复按顺序出现。

这怎么解决呢。。。

这时候就要自定义了,如下:

public class ToastUtil {

private static Toasttoast;

public static void showText(Context context,String text){

if (toast==null){

toast=Toast.makeText(context,text,Toast.LENGTH_SHORT);

}else {

toast.setText(text);

}

toast.show();

}

}

就不会出现上面那种情况了。

如果要实现这样效果:



自定义一个喜欢的Toast_第2张图片

这种效果怎么实现呢,请看如下:

public class ToastUtil {

private static Toasttoast;

public static void showText(Context context,String text){

if (toast==null){

toast=Toast.makeText(context,text,Toast.LENGTH_SHORT);

//设置吐司显示的位置

            toast.setGravity(Gravity.CENTER,0,0);

//得到吐司的父布局

            LinearLayout linearLayout= (LinearLayout)toast.getView();

//设置父布局背景形状

            linearLayout.setBackground(DrawableUtils.getGradientDrawable(Color.parseColor("#aa000000"),16));

//第一个孩子就是TextView了

            TextView tv= (TextView) linearLayout.getChildAt(0);

tv.setTextSize(18);

tv.setTextColor(Color.WHITE);

tv.setGravity(Gravity.CENTER);

}else {

toast.setText(text);

}

toast.show();

}

}

你可能感兴趣的:(自定义一个喜欢的Toast)