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;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章