更好用的Android Toast

更好用的Android Toast

根据项目经验,对Android自带的Toast打包成了一个更加简单的工具类。
主要特点如下,简化长时,短时的Toast调用,添加自定义View的Toast,只需要一行代码就可调用。

效果图:
x效果图

toast_layout.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toast_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/corners_bg_gray"
    android:orientation="vertical"
    android:padding="@dimen/margin_10dp">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/你自己的png图片" />

    <TextView
        android:id="@+id/toast_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textSize="@dimen/textsize_15sp"/>

</LinearLayout>

T.class工具类


public class T {
    private TextView tv;
    private View tView;
    private Context context;

    public T(Context _context) {
        context = _context;
    }

    public void cool(String s, int gravity, int xOffset, int yOffset, int duration, int layoutId) {
        Toast t = new Toast(context);
        t.setGravity(gravity, xOffset, yOffset);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (layoutId != 0)
            tView = Objects.requireNonNull(inflater).inflate(layoutId, null);
        else
            tView = Objects.requireNonNull(inflater).inflate(R.layout.toast_layout,null);
         tv = tView.findViewById(R.id.toast_view);
                tv.setText(s);

        t.setView(tView);
        t.setDuration(duration);
        t.show();
    }

    public void L(String s) {
        Toast.makeText(context, s, Toast.LENGTH_LONG).show();
    }

    public void S(String s) {
        Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
    }
}

drawable目录下的corners_bg_gray.xml文件,可以实现圆矩形背景。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#F0F0F0" />
    <corners android:topLeftRadius="10dp"
        android:topRightRadius="10dp"
        android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp"/>
</shape>

调用方式:

 T t = new T(this);
 t.cool("这是自定义Toast", Gravity.TOP, 0, 100, 2000, 0);
 t.S("短时Toast");

参考了该开源项目:
https://github.com/Ericsongyl/AndroidToastUtil/blob/master/app/src/main/java/com/nicksong/toastutil/util/ToastUtil.java
对原作者表示感谢!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值