,toasty的使用。为啥要用toasty呢,咳咳,大家都用过安卓自带的toast,试想这样一个场景,你正在使用一个五彩斑斓,各种炫酷动画层出不穷的APP,突然冒出了这样的图片。。。
这样颜值不高的东西,怎么能找到女友呢,呸,怎么能获得用户喜欢呢,所以,我们要提高颜值!
在本节以前,会用到以前文章所讲过的东西,避免重复,就直接给地址
好了,那先来看看使用toasty之后的效果图吧
感觉比原来还是提高了很多的,接下来,就进入正题吧
一、准备工作
(1)在build.gradle(project级别)中添加maven
allprojects {
repositories {
jcenter()
maven {url "https://jitpack.io" }
}
}
(2)在build.gradle(app级别)中添加依赖
偷懒的同学直接复制这里:compile'com.github.GrenderG:Toasty:1.1.5'
这样,我们就可以在项目中愉快的使用toasty了
二、使用Toasty
Toasty.success(this,"成功", Toast.LENGTH_SHORT,true).show();
Toasty.error(this,"失败",Toast.LENGTH_SHORT,true).show();
Toasty.info(this,"失败",Toast.LENGTH_SHORT,true).show();
Toasty.normal(this,"一般",Toast.LENGTH_SHORT).show();
Toasty的使用和toast差不多,只是多了一个是否显示图片的选项,是不是特别简单啊(哎哎哎,后面那个说很难的,你站到外面去)。那这时候又有同学要问了,你这个只是在activity中好用吧,要是在适配器中使用,还是很麻烦啊之类的,这位同学,你别激动,你没看文章标题吗,还有封装 封装呢
三:toasty的简单封装
嗯。。这个该怎么说,与其说是封装,倒不如称之为加入我们自己的工具类,一个高逼格的程序猿,出去说没有自己的工具类都显得有点落伍,哈哈哈,实际情况是不是这样我不知道,但是你有一个属于自己的工具类,开发业务的时候一定可以帮你节约一些时间的。好了,回归正题,使用toasty的方式还是挺简单的,但是context和toast显示的时间如果每次都要传是不是很麻烦,因此我们可以将之再封装一层,让每次使用的时候少传点参数。尤其是context,在经过封装后,在适配器中使用toasty就不用传context过去了,方便
封装的代码如下:
package com.example.administrator.potato.utils;
import android.support.annotation.NonNull;
import android.widget.Toast;
import es.dmoral.toasty.Toasty;
/**
* Created by potato on 2018/7/30.
*/
public class ToastMessage {
/**
*弹出成功消息
*
*@param text 需要显示的消息
*@param isShowIcon是否需要显示图标 默认显示
* */
public static void toastSuccess(@NonNull String text, BooleanisShowIcon){
if(isShowIcon==null){
isShowIcon=true;
}
Toasty.success(MyContext.getContext(),text, Toast.LENGTH_SHORT,isShowIcon).show();
}
/**
*弹出错误消息
*
*@param text 需要显示的消息
*@param isShowIcon 是否需要显示图标 默认显示
* */
public static void toastError(@NonNull String text, Boolean isShowIcon){
if(isShowIcon==null){
isShowIcon=true;
}
Toasty.error(MyContext.getContext(),text, Toast.LENGTH_SHORT,isShowIcon).show();
}
/**
*弹出一般消息
*
*@param text 需要显示的消息
* */
public static void toastNormal(@NonNull String text){
Toasty.normal(MyContext.getContext(),text, Toast.LENGTH_SHORT).show();
}
/**
*弹出警告消息
*
*@param text 需要显示的消息
*@param isShowIcon 是否需要显示图标 默认显示
* */
public static void toastWarn(@NonNull String text, Boolean isShowIcon){
if(isShowIcon==null){
isShowIcon=true;
}
Toasty.warning(MyContext.getContext(),text, Toast.LENGTH_SHORT,isShowIcon).show();
}
}
可以看到的时,我们使用自己的context类来获取context,这样就避免了老是要传context的操作
,此外,我们也把toasty显示的时间固定为short,所以经过一层简单的封装后,我们使用toasty的方式是这样的
只需要传文本值和是否显示图标就行了,有眼尖的同学也会提出疑问了,土豆哇,人家toasty的api要四个参数,如果我这样写
ToastMessage.toastSuccess("这是成功的消息",null);
把是否显示图标的值设置为null,你的程序不就报错了吗,这个问题很好,为了避免这种情况,我是这样处理的
首先,要弹出的文字加一个@NonNull来保证其不为空,只有是否显示图标是可选的,如果使用的时候传了空值进去,就直接默认为true,显示图标啦
总结:
好啦,文章到这里也就要结束了,麻烦中间的同学把后排睡觉的同学喊起来,下课了。。等等,还是做个简单总结
1、文章所用的知识有时候会复用以前讲过的,所以中途来蹭课的小伙伴可能对某一部分很困惑,嘴里还念叨着劳资明明只想看技术f,你给我把abcde都推送过来了,你以为你卖全家桶啊之类的话,em...这个问题,其实我也不想的嘛,但是写程序不为了偷懒,那是为了啥呢,对,这个理由好。我也只将一些简单的,使用方便的类封装起来用,而且文章开头也会给出超过文章知识的链接,很基础哒,各位同学一看就会的那种
2、本项目的码云地址:https://gitee.com/fightPotato/potato.git,有想偷懒的可以直接下来看看,顺便帮我找找bug哇