guduwangwei / supercustomtoast

自定义Toast,带来不一样的效果。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

supercustomtoast

自定义Toast,带来不一样的效果。 ##简介 最近项目需要,有些地方的提示信息需要用到Toast,但是系统的Toast样式有点丑,位置单一,并且只能接受两个显示时间长度。因此有些时候系统的Toast有点显得很弱了。

当然系统的Taost,也暴露了部分的方法, 见下图:
可以借助这些方法设置直接替换视图、设置显示时长、设置边距属性、设置显示位置、设置显示文字内容。

不过,这些远远不够,比如时间的设置。还有最重要的,是系统原生的Toast是呈队列显示,必须要等到前一条Toast消失才会显示下一条。明明是状态已经改变,可是上一状态的Toast还迟迟没有消失。

#####于是,为了满足项目需要,搜查资料,阅读源码,完成了这个Demo ##效果图

方法

  • 默认Toast

      /**
       * 显示一条Toast
       *
       * @param msg 消息内容
       */
      public void show(String msg) {
          show(getTextView(msg), null, null, null);
      }
    
  • 自定义Toast,5秒

      /**
      * 显示一条Toast
      *
      * @param msg      消息内容
      * @param duration 持续时间,单位为毫秒
      */
      public void show(String msg, long duration) {
         show(getTextView(msg), duration, null, null);
      }
    
  • 设置背景颜色的Toast+文字

              toast.setDefaultBackgroundColor(Color.RED, 200);
              toast.setDefaultTextColor(Color.BLUE);
              toast.show("带有背景色Toast");	   
    
  • 自定义Toast的入场和出场动画

      /**
      * 显示一条Toast
      *
      * @param msg       消息内容
      * @param duration  持续时间,单位为毫秒
      * @param startAnim 入场动画
      * @param endAnim   离场动画
      */
      public void show(String msg, Long duration, Animation startAnim, Animation      endAnim) {
      show(getTextView(msg), duration, startAnim, endAnim);
      }
    
  • 利用Toast显示应用Logo

       ImageView iv = new ImageView(MainActivity.this);
                      iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                      iv.setImageResource(R.mipmap.logo1);
                      toast.show(iv);
    
  • 自定义Toast布局

      /**
       * 显示一条Toast
       * @param msg 消息内容
       */
      public void show(String msg,int layoutId,int rootId,Activity activity){
          LayoutInflater inflater = activity.getLayoutInflater();
          layout = inflater.inflate(layoutId,
                  (ViewGroup)activity.findViewById(rootId));
          layout.setLayoutParams(lp_WW);
          TextView title = (TextView) layout.findViewById(R.id.title);
          title.setText(msg);
          title.setTextColor(defaultTextColor);
          show(layout, null, null, null);
      }
    

##联系方式:

About

自定义Toast,带来不一样的效果。


Languages

Language:Java 100.0%