android 工具类toast,Android工具类----ToastUtils

前言

Android中的Toast可谓是最长用的东西之一了,用起来也相当简单,也就是一行代码的事情。但是它有默认的样子,也就是在屏幕的底部弹出一个黑色半透明的框。但是有时候设计人员会觉得它不好看,不够多样性。所以这篇文章就封装一个自己的可变的Toast。

封装ToastUtils

public class ToastUtils {

/**

* 这里是方法的重载,用于开放不同的参数

*

* @param messageID

*/

public static void showToast(int messageID) {

showToast(App.getInstance(), messageID);

}

public static void showToast(String message) {

showToast(App.getInstance(), message);

}

public static void showToast(int messageID, int duration) {

showToast(App.getInstance(), messageID, duration);

}

public static void showToast(String message, int duration) {

showToast(App.getInstance(), message, duration);

}

public static void showToast(Context context, int resId) {

showToast(context, context.getString(resId), Toast.LENGTH_SHORT);

}

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

showToast(context, message, Toast.LENGTH_SHORT);

}

public static void showToast(Activity context, int resId) {

showToast(context, context.getString(resId), Toast.LENGTH_SHORT);

}

public static void showToast(Activity context, int resId,int duration) {

showToast(context, context.getString(resId), duration);

}

private static void showToast(Activity context, String message) {

showToast(context, message, Toast.LENGTH_SHORT);

}

private static void showToast(Context context, int resId, int duration) {

///Toast.makeText(context, resId, duration).show();

showToast(context, context.getString(resId), duration);

}

static Toast toast;

static TextView contentView;

/**

* 自定义Toast的样式与位置

*

* @param context

* @param message

* @param duration

*/

private static void showToast(Context context, String message, int duration) {

if (context == null) {

return;

}

try {

if (toast == null || contentView == null) {

int dp30 = DensityUtils.dp2px(context, 30);

int dp20 = DensityUtils.dp2px(context, 20);

contentView = new TextView(context);

contentView.setGravity(Gravity.CENTER);

contentView.setBackgroundResource(R.drawable.bg_toast);

contentView.setTextSize(16);

contentView.setTextColor(context.getResources().getColor(R.color.white));

contentView.setPadding(dp30, dp20, dp30, dp20);

toast = new Toast(context);

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setView(contentView);

toast.setDuration(duration);

}

contentView.setText(message);

toast.show();

} catch (Exception e) {

Toast.makeText(context, message, duration).show();

e.printStackTrace();

}

}

}

以上的代码的重中之重也就在最后一个showToast方法里了。这里通过toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);来设置了Toast在页面中的位置。点进去看一眼源码:

public void setGravity(int gravity, int xOffset, int yOffset) {

throw new RuntimeException("Stub!");

}

这三个参数不难理解。

通过toast.setView(contentView);来设置Toast的样式,结合自定义View就可以创造出各种各样的Toast。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值