在日常开发中我们经常会遇到用户点击需要使用吐司来提示,但是在弹吐司的时候如果用户连续点击就会出现吐司内容出现延迟的情况,这个功能工具类完美解决这个问题。
package com.zyb;
import android.content.Context;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
/**
* com.zyb
* 功能描述:Toast工具类
* 时 间: 2017年 07月 04
* 代码创建: zyb
**/
public class ToastUtils {
public static Toast mToast;
/**
* 传入文字
* 短时间显示
* */
public static void showShort( Context context , String text){
if (mToast == null){
mToast = Toast.makeText( context, text , Toast.LENGTH_SHORT);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(text);
}
mToast.setGravity(Gravity.CENTER , 0 , 0);
mToast.show();
}
/**
* 传入资源文件
* 短时间显示
* */
public static void showShort(Context context, int resId){
if (mToast == null){
mToast = Toast.makeText( context, resId , Toast.LENGTH_SHORT);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(resId);
}
mToast.show();
}
/**
* 传入文字,在中间显示
* 短时间显示
* */
public static void showCenterShort( Context context , String text){
if (mToast == null){
mToast = Toast.makeText( context, text , Toast.LENGTH_SHORT);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(text);
}
mToast.setGravity(Gravity.CENTER , 0 , 0);
mToast.show();
}
/**
* 传入文字,带图片
* 短时间显示
* */
public static void showImgShort( Context context , String text , int resImg){
if (mToast == null){
mToast = Toast.makeText( context, text , Toast.LENGTH_SHORT);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(text);
}
//添加图片的操作,这里没有设置图片和文字显示在一行的操作呢...
LinearLayout view = (LinearLayout) mToast.getView();
ImageView imageView = new ImageView(context);
imageView.setImageResource(resImg);
view.addView(imageView);
mToast.show();
}
/**
* 传入文字
* 短时间显示
* */
public static void showLong( Context context , String text){
if (mToast == null){
mToast = Toast.makeText( context, text , Toast.LENGTH_LONG);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(text);
}
mToast.setGravity(Gravity.CENTER , 0 , 0);
mToast.show();
}
/**
* 传入资源文件
* 长时间显示
* */
public static void showLong(Context context, int resId){
if (mToast == null){
mToast = Toast.makeText( context, resId , Toast.LENGTH_LONG);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(resId);
}
mToast.show();
}
/**
* 传入文字,在中间显示
* 长时间显示
* */
public static void showCenterLong( Context context , String text){
if (mToast == null){
mToast = Toast.makeText( context, text , Toast.LENGTH_LONG);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(text);
}
mToast.setGravity(Gravity.CENTER , 0 , 0);
mToast.show();
}
/**
* 传入文字,带图片
* 长时间显示
* */
public static void showImgLong( Context context , String text , int resImg){
if (mToast == null){
mToast = Toast.makeText( context, text , Toast.LENGTH_LONG);
}else {
//如果当前Toast没有消失, 直接显示内容,不需要重新设置
mToast.setText(text);
}
//添加图片的操作,这里没有设置图片和文字显示在一行的操作呢...
LinearLayout view = (LinearLayout) mToast.getView();
ImageView imageView = new ImageView(context);
imageView.setImageResource(resImg);
view.addView(imageView);
mToast.show();
}
}