您的位置:首页 > 其它

吐司工具类ToastUtil--集系统吐司,可设置背景颜色和字体颜色吐司,以及自定义布局吐司

2017-01-24 17:05 423 查看
如有不足,烦请见谅;如有帮助,顶一个!

关于系统吐司,可设置背景颜色和字体颜色吐司,以及自定义布局吐司。还可以居中显示吐司!

先来一个公共的公共接口Util

import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;

import com.techfit.bouncescrollview.BounceSVApp;
import com.techfit.bouncescrollview.Utils.consts.ConstsHttp;
import com.techfit.bouncescrollview.Utils.consts.ConstsIntent;
import com.techfit.bouncescrollview.Utils.consts.ConstsSPKeys;

/**
* Created by wangzhengyang on 2017/1/20.
*/

public interface Util {

/**
* 全局的Context
*/
Context CONTEXT = BounceSVApp.getApp().getApplicationContext();

/**
* 全局的布局加载器
*/
LayoutInflater INFLATER = (LayoutInflater) CONTEXT.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

/**
* 全局的Resource
*/
Resources RES = CONTEXT.getResources();

/**
* 网络请求
*/
//ConstsHttp HTTP = ConstsHttp.DEBUG;

/**
* SharedPreferences的key
*/
interface SPKEYS extends ConstsSPKeys {
}

/**
* Intent传值(name,value)的name
* 例:intent.putExtra(INTENT.USER, new User(1, "李四", "男", 21));
*/
//interface INTENT extends ConstsIntent {
//}

}


再来ToastUtil,实现Util

import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.Shape;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.techfit.bouncescrollview.R;

/**
* 吐司工具类
* Created by wangzhengyang on 2017/1/19.
*/

public class ToastUtil implements Util {

public static final int LAYOUT_TIP = R.layout.layout_tip;
public static final int TEXT_VIEW_TIP = R.id.tip_text;
public static final int IMG_VIWE_TIP = R.id.tip_img;
public static final int GRAVITY_DEFAULT = Integer.MIN_VALUE;

// 系统默认吐司 —》

/**
* 短吐司
* @param pTip 要吐司的内容
*/
public static void showTip(String pTip) {
showTipDef(pTip, Toast.LENGTH_SHORT);
}

/**
* 长吐司
* @param pTip 要吐司的内容
*/
public static void showLongTip(String pTip) {
showTipDef(pTip, Toast.LENGTH_LONG);
}

private static void showTipDef(String pTip, int pDuration) {
if (null == pTip) throw new NullPointerException("Text is null!");
Toast.makeText(CONTEXT, pTip, pDuration).show();
}

// 《— 系统默认吐司

// 显示自定义吐司 —》

private static void showTipCus(int pDuration, int layoutId, ViewCallBack pViewCallBack, int pGravity) {
Toast tip = new Toast(CONTEXT);
tip.setDuration(pDuration);
if (layoutId <= 0) layoutId = LAYOUT_TIP;
View v = INFLATER.inflate(layoutId, null);
v = pViewCallBack.getView(v);
tip.setView(v);
if (pGravity != GRAVITY_DEFAULT) {
tip.setGravity(pGravity, 0, 0);
}
tip.show();
}

// 显示吐司 显示自定义默认吐司 —》

private static void showTipCustom(final String pTip, int pDuration, final int pGravity){
if (null == pTip) return;
showTipCus(pDuration, LAYOUT_TIP, new ViewCallBack() {
@Override
public View getView(View v) {
TextView tv = (TextView) v.findViewById(TEXT_VIEW_TIP);
tv.setText(pTip);
return v;
}
}, pGravity);
}

public static void showTipCus(String pTip) {
showTipCustom(pTip, Toast.LENGTH_SHORT, GRAVITY_DEFAULT);
}

public static void showLongTipCus(String pTip) {
showTipCustom(pTip, Toast.LENGTH_LONG, GRAVITY_DEFAULT);
}

public static void showTipCusCenter(final String pTip) {
showTipCustom(pTip, Toast.LENGTH_SHORT,Gravity.CENTER);
}

public static void showLongTipCusCenter(final String pTip) {
showTipCustom(pTip,
aa6e
Toast.LENGTH_LONG,Gravity.CENTER);
}

// 《— 显示吐司 显示自定义默认吐司

// 显示吐司 可以设置背景颜色和文字颜色 —》

private static void showTipCus(final String pTip, int pDuration, final int pGravity, final int bgColor, final int textColor){
if (null == pTip) return;
showTipCus(pDuration, LAYOUT_TIP, new ViewCallBack() {
@Override
public View getView(final View v) {
if (bgColor > 0) {
ShapeDrawable shapeDrawable = new ShapeDrawable(new Shape() {
@Override
public void draw(Canvas canvas, Paint paint) {
paint.setColor(bgColor);
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);
canvas.drawRoundRect(new RectF(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()), 36f, 36f, paint);
}
});
v.setBackgroundDrawable(shapeDrawable);
}

TextView tv = (TextView) v.findViewById(TEXT_VIEW_TIP);
tv.setTextColor(textColor);
tv.setText(pTip);
return v;
}
}, pGravity);
}

public static void showTipCus(String pTip, int bgColor, int textColor) {
showTipCus(pTip, Toast.LENGTH_SHORT, GRAVITY_DEFAULT, bgColor, textColor);
}

public static void showLongTipCus(String pTip, int bgColor, int textColor) {
showTipCus(pTip, Toast.LENGTH_LONG, GRAVITY_DEFAULT, bgColor, textColor);
}

public static void showTipCusCenter(final String pTip, int bgColor, int textColor) {
showTipCus(pTip, Toast.LENGTH_SHORT,Gravity.CENTER, bgColor, textColor);
}

public static void showLongTipCusCenter(final String pTip, int bgColor, int textColor) {
showTipCus(pTip, Toast.LENGTH_LONG,Gravity.CENTER, bgColor, textColor);
}

// 《— 显示吐司 可以设置背景颜色和文字颜色

// 显示吐司 传入布局id,和视图回调 —》

public static void showTipCus(int layoutId, ViewCallBack pViewCallBack){
showTipCus(Toast.LENGTH_SHORT, layoutId, pViewCallBack,GRAVITY_DEFAULT);
}
public static void showLongTipCus(int layoutId, ViewCallBack pViewCallBack){
showTipCus(Toast.LENGTH_LONG, layoutId, pViewCallBack,GRAVITY_DEFAULT );
}

public static void showTipCusCenter(int layoutId, ViewCallBack pViewCallBack) {
showTipCus(Toast.LENGTH_SHORT, layoutId, pViewCallBack, Gravity.CENTER);
}

public static void showLongTipCusCenter(int layoutId, ViewCallBack pViewCallBack) {
showTipCus(Toast.LENGTH_LONG, layoutId, pViewCallBack, Gravity.CENTER);
}

// 《— 显示吐司 传入布局id,和视图回调

/**
* 视图回调接口,将视图(View)传入,处理后,再返回
*/
public interface ViewCallBack {
View getView(View v);
}
// 《— 显示自定义吐司
}


布局文件

<?xml version="1.0" encoding="utf-8"?>


<?xml version="1.0" encoding="utf-8"?>


这样一个集系统吐司,可改变背景颜色和字体颜色吐司,以及自定义布局吐司就实现了。

接下来是使用:

//系统吐司
ToastUtil.showTip("系统吐司 def short toast");


//① 默认布局
ToastUtil.showTipCus("cus short toast");

//②传入布局的resId,和ViewCallBack,实现自定义吐司
ToastUtil.showTipCus(R.layout.layout_tip, new ToastUtil.ViewCallBack() {
@Override
public View getView(View v) {
TextView tv = (TextView) v.findViewById(R.id.tip_text);
tv.setText("自定义吐司 cus short toast");
tv.setTextColor(Color.RED);
return v;
}
});

//③可以改变背景颜色和字体
ToastUtil.showTipCus("自定义吐司 cus short toast", Color.argb(0x90, 0xFF, 0xCC, 0x90), Color.rgb(0x00, 0x33, 0x00));


ooo啦!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐