• 以前一直用的安卓原生Toast,个人感觉Toast这东西,没必要花功夫,知道看到了Toasty这东西,立刻被圈粉了,真的非常好看。
  • 项目地址

我们都知道,安卓原生Toast的用法是

 Toast.makeText(MainActivity.this,"Toast显示内容",Toast.LENGTH_SHORT).show();

方法内由Context、内容、持续时间(LENGTH_SHORT为短时间,2秒。LENGTH_LONG为长时间,3.5秒。也可以用毫秒数代替)构成。而Toasty的实际使用,也跟原生的使用方法基本一致,这就非常舒服了。

首先,我们需要在工程根目录的build.gradle添加仓库

 allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}

然后,在app目录下的build.gradle添加依赖

 dependencies {
...
//截止到写这篇博客时最新版为1.4.2
implementation 'com.github.GrenderG:Toasty:1.4.2'
}

完成了以上的准备工作,现在就可以使用了

错误Toast

 Toasty.error(MainActivity.this, "This is an error toast.", Toast.LENGTH_SHORT, true).show();

成功Toast

 Toasty.success(MainActivity.this, "This is a success toast.", Toast.LENGTH_SHORT, true).show();

提示Toast

 Toasty.info(MainActivity.this, "This is an info toast.", Toast.LENGTH_SHORT, true).show();

警告Toast

 Toasty.warning(MainActivity.this, "This is a warning toast.", Toast.LENGTH_SHORT, true).show();

原生Toast

当然,也有修改后的原生Toast,满足你的不同需求

 Toasty.normal(MainActivity.this, "Normal toast.").show();

带图片的原生Toast

 Toasty.normal(MainActivity.this, "Normal toast.", IconDrawable).show();
//IconDrawable是你需要放入的图片,可以用getDrawable实现。以软件图标当Toast图片为例,则用法为:
Toasty.normal(MainActivity.this, "Normal toast.",getResources().getDrawable(R.drawable.ic_launcher)).show();

自定义Toast

当然肯定少不了自定义Toast

 //官方的介绍是:
Toasty.custom(yourContext, "I'm a custom Toast", yourIconDrawable, tintColor, duration, withIcon, shouldTint).show();

但在实际使用时,则需要自己补全步骤

图片仍然用getDrawable,而颜色可以直接使用安卓定义的Color.BLUE、Color.RED等分别设置背景颜色和文本颜色,用法如下:

 Toasty.custom(MainActivity.this, "I'm a custom Toast", getResources().getDrawable(R.drawable.ic_launcher),Color.BLUE,Color.RED, Toast.LENGTH_SHORT, true,true).show();

然而,实际中更需要的当然是自定义颜色。这可以用类似的getColor实现:

1.在/res/valus目录下的colors.xml中设置颜色值

 <resources>
<color name="color1">#BBDEFB</color>
<color name="color2">#ffffff</color>
</resources>

2.使用getColor引用color1和color2

 Toasty.custom(MainActivity.this, "I'm a custom Toast", getResources().getDrawable(R.drawable.ic_launcher),getResources().getColor(R.color.color1),getResources().getColor(R.color.color2), Toast.LENGTH_SHORT, true,true).show();

统一配置

Toasty支持统一配置内容,可以搭配封装来用本身这个库的使用就非常简单,但是实际使用需要那么长一条还是比较麻烦。所以封装这个不必要,但可以搞一搞,使用时也就不用一个参数一个参数写进去了,而这个的封装也比较简单。

封装

封装在这篇文章

效果展示

相关资源

下载演示demo

下载源码

一款精美的Toast第三方库的简单使用的更多相关文章

  1. python第三方库requests简单介绍

    一.发送请求与传递参数 简单demo: import requests r = requests.get(url='http://www.itwhy.org') # 最基本的GET请求 print(r ...

  2. 第三方库PIL简单使用

    PIL为第三方库,需要简单安装,最容易的安装方法 pip install PIL 详细内容见http://effbot.org/imagingbook/ 下面展示一个简单用例:(字母验证码简单实现) ...

  3. 吐血整理!Python常用第三方库,码住!!!

    ​ Python作为一种编程语言近年来越来越受欢迎,它为什么这么火? 其中一个重要原因就是因为Python的库丰富--Python语言提供超过15万个第三方库,Python库之间广泛联系.逐层封装.几 ...

  4. 【转】提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果

    原文网址:http://www.zhimengzhe.com/IOSkaifa/37910.html MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显 ...

  5. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  6. IOS常用第三方库《转》

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  7. Python库,让你相见恨晚的第三方库

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具.pyenv – 简单的 Python 版本管理工具.Vex – 可以在虚拟环境中执行命令.virt ...

  8. python第三方库,你要的这里都有

    Python的第三方库多的超出我的想象. python 第三方模块 转 https://github.com/masterpy/zwpy_lst   Chardet,字符编码探测器,可以自动检测文本. ...

  9. iOS 第三方库、插件、知名博客总结

    iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...

随机推荐

  1. Python--day24--单继承关键字super

    super().  调用父类方法:(super不仅可以在一个类的内部使用,还可以在一个类的外部使用)

  2. java 多线程安全问题的解决方法

    三种方法: 同步代码块: synchronized(obj) { //obj表示同步监视器,是同一个同步对象 /**..... TODO SOMETHING */ }   同步方法 格式: 在方法上加 ...

  3. 高可用之nginx配置文件详解

    #user nobody; worker_processes 1;##工作线程数,一般和cpu的核数相同:可通过ps -ef | nginx查看线程数 #配置错误日志位置 #error_log log ...

  4. HDU 1698 Just a Hook (线段树模板题-区间求和)

    Just a Hook In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of t ...

  5. Junit 测试集(打包测试)实例

    测试集,直译过来的意思就是把测试集合起来,再详细一些就是把多个单元测试集合起来 .单元测试可以理解为:单个接口 或者单个类/方法 的测试 项目背景:测试基于spring开发的项目代码 实例模板:pac ...

  6. js 中日期2013-08-30或2019-08-24 12:30:00 转换成时间戳,和2019-08-29T02:15:08.000+0000转化为2019-08-29T02:15:08

    js 中日期2019-08-24 或2019-08-24 12:30:00 转换成时间戳 首先将它转成date日期类型,然后获取毫秒形式时间戳 let date=new Date("2019 ...

  7. Java 学习笔记(15)——反射

    Java中的类文件最终会被编译为.class 文件,也就是Java字节码.这个字节码中会存储Java 类的相关信息.在JVM执行这些代码时首先根据 java 命令中指定的类名找到.class 文件然后 ...

  8. RNN,LSTM

    RNN: Vanilla Neural Network :对单一固定的输入给出单一固定输出 Recurrent Neural Network:对单一固定的输入给出一系列输出(如:可边长序列),例:图片 ...

  9. Python socket套接字通信

    一.什么是socket? socket是一个模块, 又称套接字,用来封装 互联网协议(应用层以下的层). 二.为什么要有socket? socket可以实现互联网协议 应用层以下的层 的工作,提高开发 ...

  10. 洛谷$P$4301 $[CQOI2013]$新$Nim$游戏 线性基+博弈论

    正解:线性基 解题报告: 传送门! 这题其实就是个博弈论+线性基,,,而且博弈论还是最最基础的那个结论,然后线性基也是最最基础的那个板子$QwQ$ 首先做这题的话需要一点点儿博弈论的小技能,,,这题的 ...