自定义toast
来源:互联网 发布:泰豪软件股份有限公司 编辑:程序博客网 时间:2024/06/07 17:03
以前用Toast的时候都是直接Toast.makeText,这样直接使用系统自带的Toast,不过并不美观。所以这里我自定义Toast,其实Toast可以假装布局,它有个setView方法。这就是自定义Toast的关键,下面是效果
自定义Toast的布局,mytoast.xml。这里给了根布局一个ID,inflate的时候用的
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/my_toast" android:background="#15cc3e"> <TextView android:id="@+id/toast_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:text="我的自定义" android:textSize="16sp"/></LinearLayout>自定义的显示Toast的类。有相关说明。
public class MyToast { private static Toast toast=null; private Context context=null; public MyToast(Context context){ this.context=context; } public void show(String string){ //只要显示新的toast就把旧的退出 if(toast!=null) toast.cancel(); //(Activity)context实现context转换为activity Activity activity= (Activity) context; LayoutInflater inflater=activity.getLayoutInflater(); View view=inflater.inflate(R.layout.mytoast, (ViewGroup) activity.findViewById(R.id.my_toast)); //这里还可以加载图片等其他布局 TextView textView= (TextView) view.findViewById(R.id.toast_text); textView.setText(string); toast=new Toast(context); //设置位置 toast.setGravity(Gravity.CENTER,0,0); //设置显示时间 toast.setDuration(Toast.LENGTH_SHORT); //设置自定义的布局 toast.setView(view); toast.show(); ObjectAnimator animator=ObjectAnimator.ofInt(toast,"translationY",toast.getYOffset(),toast.getYOffset()+40); animator.setDuration(1000); animator.start(); }}利用cancel方法实现了,然后时候都只有一个Toast显示,即新的Toast显示之前把旧的关闭。这样你的Toast可以显示很多东西。但是不建议显示按钮什么的,因为Toast的点击事件是建议的,虽然是可以实现的,但不能跨应用。
阅读全文
1 0
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义toast
- 自定义toast
- 自定义Toast
- 自定义toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- Toast自定义
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义toast
- 自定义Toast
- Window ffmpeg 推摄像头音视频流到服务器
- 51:古代密码
- MFC 树控件 将一棵树全部展开
- 初学嵌入式Linux开发,学习笔记二
- Django 常见的报错
- 自定义toast
- 判断一个节点是否在一棵二叉树中
- pt-table-sync高效同步mysql表数据
- break的注意点
- ACM自己之前寒假的基础总结
- Android 7.0 通过FileProvider实现应用间文件共享
- python 中的字符串操作
- blog_4b1653c30100s7ij.html
- pipeline中MySQL存储方式