toast

ToastCompat

欢迎各位提出改进意见及完善,欢迎star.

  • 做这个的出发点是不管是测试还是本身的项目需求,需要搞一个toast,满足各式各样的需要,大概有这些,于是就有写了
    • 有需求的单列的toast
    • 有需求可以自定义弹出时间的toast
    • 有需求在关闭系统的通知权限后照样可以弹出toast
    • 有需求可以弹出自定义view
  • 参考资料
    • 参考toast的源码,系统维护是一个队列,同时也用到了aidl
    public void show() {

        if (mNextView == null) {
            throw new RuntimeException("setView must have been called");
        }
        INotificationManager service = getService();
        String pkg = mContext.getOpPackageName();
        TN tn = mTN;
        tn.mNextView = mNextView;

        try {
            service.enqueueToast(pkg, tn, mDuration);
        } catch (RemoteException e) {
            // Empty
        }
    }


  • 参考okhttp源码,以前没有太在意,后来发现,不管是okhttp中的builder还是dialog中的,他们的功能都是设置参数,这种思想非常好
  • 使用方法
    • 直接拷贝源码到项目中,简单暴力直接,有点重口味了,同时源码也不多。
    • 直接引入库
      compile ‘com.gs:ToastCompat:1.0.0’

具体调用api方法
1.单列
new CustomToast.Builder(this).setIsSingle(true).setText("你好").build()
.show();

2.自定义时间
new CustomToast.Builder(this).setText("你好").setDuration(2000).build()
.show();

3.自定义View
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.mipmap.ic_launcher);
new CustomToast.Builder(this).setIsSingle(true).setView(imageView).setDuration(2000).build()
.show();

4.复合使用
new CustomToast.Builder(this).setIsSingle(true).setText("你好").setDuration(2000).build()
.show();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值