Toast工具类

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Handler;
import android.util.TypedValue;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;


import com.zftlive.android.MApplication;


/**
 * 自定义Toast控件
 * @version 1.0
 */
public class ToolToast {

private static Toast mToast;
private static Handler mHandler = new Handler();
private static Runnable r = new Runnable() {
public void run() {
mToast.cancel();
}
}; 

/**
* 弹出较长时间提示信息
* @param context 上下文对象
* @param msg 要显示的信息
*/
public static void showLong(Context context, String msg){
buildToast(context,msg,Toast.LENGTH_LONG).show();
}

/**
* 弹出较长时间提示信息
* @param msg 要显示的信息
*/
public static void showLong(String msg){
buildToast(MApplication.gainContext(),msg,Toast.LENGTH_LONG).show();
}

/**
* 弹出较短时间提示信息
* @param context 上下文对象
* @param msg 要显示的信息
*/
public static void showShort(Context context, String msg){
buildToast(context,msg,Toast.LENGTH_SHORT).show();
}

/**
* 弹出较短时间提示信息
* @param msg 要显示的信息
*/
public static void showShort(String msg){
buildToast(MApplication.gainContext(),msg,Toast.LENGTH_SHORT).show();
}

/**
* 构造Toast
* @param context 上下文
* @return
*/
private static Toast buildToast(Context context,String msg,int duration){
return buildToast(context,msg,duration,"#000000",16);
}



/**
* 构造Toast
* @param context 上下文
* @param msg 消息
* @param duration 显示时间
* @param bgColor 背景颜色
* @return
*/
public static Toast buildToast(Context context,String msg,int duration,String bgColor){
return buildToast(context,msg,duration,bgColor,16);
}


/**
* 构造Toast
* @param context 上下文
* @param msg 消息
* @param duration 显示时间
* @param bgColor 背景颜色
* @param textSp  文字大小
* @return
*/
public static Toast buildToast(Context context,String msg,int duration,String bgColor,int textSp){
return buildToast(context,msg,duration,bgColor,textSp,10);
}

/**
* 构造Toast
* @param context 上下文
* @param msg 消息
* @param duration 显示时间
* @param bgColor 背景颜色
* @param textSp  文字大小
* @param cornerRadius  四边圆角弧度
* @return
*/
public static Toast buildToast(Context context,String msg,int duration,String bgColor,int textSp,int cornerRadius){
mHandler.removeCallbacks(r);

if(null == mToast){
//构建Toast
mToast = Toast.makeText(context, null, duration);
mToast.setGravity(Gravity.CENTER, 0, 0);
//取消toast
mHandler.postDelayed(r, duration);
}

//设置Toast文字
TextView tv = new TextView(context);
int dpPadding = ToolUnit.dipTopx(10);
tv.setPadding(dpPadding, dpPadding, dpPadding, dpPadding);
tv.setGravity(Gravity.CENTER);
tv.setText(msg);
tv.setTextColor(Color.WHITE);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSp);

//Toast文字TextView容器
        LinearLayout mLayout = new LinearLayout(context);
        GradientDrawable shape = new GradientDrawable();
   shape.setColor(Color.parseColor(bgColor));
   shape.setCornerRadius(cornerRadius);
   shape.setStroke(1, Color.parseColor(bgColor));
   shape.setAlpha(180);
        mLayout.setBackground(shape);
        mLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);  
//设置layout_gravity
params.gravity = Gravity.CENTER;  
mLayout.setLayoutParams(params);
   //设置gravity
mLayout.setGravity(Gravity.CENTER);
        mLayout.addView(tv);
        
        //将自定义View覆盖Toast的View
        mToast.setView(mLayout);
        
return mToast;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值