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

如有不足,烦请见谅;如有帮助,顶一个!

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

先来一个公共的公共接口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, 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);
    }
    // 《— 显示自定义吐司
}

布局文件

    
    


    
    

    
     
     

    
     
     

    
    


     
     

     
     

    
      
      

    
      
      
    
      
      

     
     

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

接下来是使用:

//系统吐司
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啦!!!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值