ToastUils

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
public class ToastUtil
{
    private static int gravityNone = -100;
    public static void shortNormal(Context context, String text){
        show(context, gravityNone, Toast.LENGTH_SHORT, text);
    }
    public static void shortAtCenter(Context context, String text){
        show(context, Gravity.CENTER, Toast.LENGTH_SHORT, text);
    }
    public static void shortAtTop(Context context, String text){
        show(context, Gravity.TOP, Toast.LENGTH_SHORT, text);
    }
    public static void shortAtTopInThread(final Context context, final String text){
        if (context == null){
            return;
        }
        ((Activity) context).runOnUiThread(new Runnable() {
            public void run()
            {
                show(context, Gravity.TOP, Toast.LENGTH_SHORT, text);
            }
        });
    }
    public static void longNormal(Context context, CharSequence text){
        Toast.makeText(context, text, Toast.LENGTH_LONG).show();
    }
    public static void longAtCenter(Context context, String text){
        show(context, Gravity.CENTER, Toast.LENGTH_LONG, text);
    }
    public static void longAtTop(Context context, String text){
        show(context, Gravity.TOP, Toast.LENGTH_LONG, text);
    }
    public static void longAtTopInThread(final Context context, final String text){
        if (context == null){
            return;
        }
        ((Activity) context).runOnUiThread(new Runnable() {
            public void run()
            {
                show(context, Gravity.CENTER, Toast.LENGTH_LONG, text);
            }
        });
    }
    public static void shortInThread(final Context context, final String text)
    {
        if (context == null){
            return;
        }
        ((Activity) context).runOnUiThread(new Runnable() {
            public void run()
            {
                show(context, gravityNone, Toast.LENGTH_SHORT, text);
            }
        });
    }
    public static void shortAtCenterInThread(final Context context, final String text)
    {
        if (context == null){
            return;
        }
        ((Activity) context).runOnUiThread(new Runnable() {
            public void run()
            {
                show(context, Gravity.CENTER, Toast.LENGTH_SHORT, text);
            }
        });
    }
    public static void longInThread(final Context context, final String text)
    {
        if (context == null){
            return;
        }
        ((Activity) context).runOnUiThread(new Runnable() {
            public void run()
            {
                show(context, gravityNone, Toast.LENGTH_LONG, text);
            }
        });
    }
    public static void longAtCenterInThread(final Context context, final String text)
    {
        if (context == null){
            return;
        }
        ((Activity) context).runOnUiThread(new Runnable() {
            public void run()
            {
                show(context, Gravity.CENTER, Toast.LENGTH_LONG, text);
            }
        });
    }
    @SuppressWarnings("deprecation")
    public static void show(Context context, int gravity, int duration, String text) {
        Toast toast = Toast.makeText(context, text, duration);
        if(gravity==Gravity.CENTER){
            toast.setGravity(gravity, 0, -100);
        }else if(gravity==Gravity.TOP){
            toast.setGravity(gravity, 0, 100);
        }
        TextView textView = new TextView(context);
        textView.setTextColor(Color.parseColor("#FFFFFF"));
        textView.setPadding(dp2Px(8, context),dp2Px(8, context),dp2Px(8, context), dp2Px(8, context));
        LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        textView.setLayoutParams(params);
        if(!TextUtils.isEmpty(text)){
            textView.setText(text);
        }else{
            textView.setText("  ");
        }
        GradientDrawable gradientDrawableNormal = new GradientDrawable();
        gradientDrawableNormal.setShape(GradientDrawable.RECTANGLE);
        gradientDrawableNormal.setColor(Color.parseColor("#99353535"));
        float radius = dp2Px(4, context);
        gradientDrawableNormal.setCornerRadii(new float[]{radius , radius, radius, radius, radius, radius, radius, radius});
        textView.setBackgroundDrawable(gradientDrawableNormal);
        toast.setView(textView);
        toast.show();
    }
    /**数据转换: dp---->px*/
    private static int dp2Px(float dp, Context context)
    {
        if (context == null) {
            return -1;
        }
        return (int) (dp * context.getResources().getDisplayMetrics().density);
    }
}

文/Alex_Cin(简书作者)
原文链接:http://www.jianshu.com/p/675e71f24e2d
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值