自定义多功能toast

原创
2015/06/13 18:40
阅读数 54

/**

 * 吐司工具

 *

 * @author color

 */

public class ToastUtils {

    private static Toast mToast;

    private static String lastToast = "";

    private static long lastToastTime;


    private ToastUtils() {


    }


    public static void show(Context context, String msg) {

        if (mToast == null) {

            mToast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);

        } else {

            mToast.setText(msg);

            mToast.setDuration(Toast.LENGTH_SHORT);

        }

        mToast.show();

    }


//    public static void showIcon(Context context, String msg) {

//        mToast = Toast.makeText(context,

//                msg, Toast.LENGTH_LONG);

//        mToast.setGravity(Gravity.CENTER, 0, 0);

//        LinearLayout toastView = (LinearLayout) mToast.getView();

//        ImageView imageCodeProject = new ImageView(context);

//        imageCodeProject.setImageResource(R.drawable.wz_toast_logo);

//        toastView.addView(imageCodeProject, 0);

//        mToast.show();

//    }


    public static void showToastShort(Context context,String message) {

        showBaseToast(message, Toast.LENGTH_SHORT, 0, Gravity.BOTTOM, context);

    }


    public static void showToastIcon(Context context,String message, int icon) {

        showBaseToast(message, Toast.LENGTH_LONG, icon, Gravity.CENTER, context);

    }

    private static void showBaseToast(String message, int duration, int icon, int gravity, Context context) {


        if (!TextUtils.isEmpty(message)) {

            long time = System.currentTimeMillis();

            if (!message.equalsIgnoreCase(lastToast)

                    || Math.abs(time - lastToastTime) > 2000) {

                View view = LayoutInflater.from(context).inflate(R.layout.wz_toast_view, null);

                ((TextView) view.findViewById(R.id.tvForToast)).setText(message);

                if (icon != 0) {

                    ((ImageView) view.findViewById(R.id.ivForToast))

                            .setImageResource(icon);

                    (view.findViewById(R.id.ivForToast))

                            .setVisibility(View.VISIBLE);

                }else{

                    (view.findViewById(R.id.ivForToast))

                            .setVisibility(View.GONE);

                }

                Toast toast = new Toast(context);

                toast.setView(view);

                if (gravity == Gravity.CENTER) {

                    toast.setGravity(gravity, 0, 0);

                } else {

                    toast.setGravity(gravity, 0, 35);

                }


                toast.setDuration(duration);

                toast.show();

                lastToast = message;

                lastToastTime = System.currentTimeMillis();

            }

        }

    }


    public void cancelToast() {

        if (mToast != null) {

            mToast.cancel();

        }

    }


}


展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部