自定义Toast
来源:互联网 发布:nginx服务启动 编辑:程序博客网 时间:2024/06/06 09:57
修改原因:
1、防止多次点击Toast,在界面已经跳转但是Toast还在显示的bug;
2、区分正常与错误的状态,设置不同的背景色。
public class ToastManager { private static Toast toast = null;// private static Toast getToast(String msg){ if (toast==null){ synchronized (toast){ if (toast==null){ //该处的Context取自Application自定义方法 Context context =SystemApplication.getContext(); toast = Toast.makeText(context, msg, Toast.LENGTH_LONG); } } }else{ toast.setText(msg); } toast.setGravity(Gravity.BOTTOM, 0, 200); return toast; } public static void showError(String msg) { getToast(msg); View view = toast.getView(); TextView tv = (TextView) view.findViewById(android.R.id.message); view.setBackgroundColor(0xb0000000); tv.setSingleLine(true); tv.setTextColor(Color.parseColor("#FFFFFF")); // tv.setTextSize(); toast.show(); } public static void show(String msg) { getToast(msg); View view = toast.getView(); TextView tv = (TextView) view.findViewById(android.R.id.message); tv.setGravity(Gravity.CENTER); //view.setBackgroundColor(0xb0000000); tv.setSingleLine(false); tv.setTextColor(Color.parseColor("#FFFFFF"));// tv.setTextColor(context.getResources().getColor(R.color.font_color)); // tv.setTextSize(); toast.show(); } public void cancle() { if (toast != null) { toast.cancel(); } }}
使用也非常简单:
ToastManager.showError("异常内容");
以上关于Toast设置单例模式,来自郭神的创意,为了形象生动,此处再借鉴两张效果图:
单例前:
单例后:
以上内容总结自大神demo及郭神创意,暂时无状态效果图。欢迎吐槽!
0 0
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义toast
- 自定义toast
- 自定义Toast
- 自定义toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- Toast自定义
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义toast
- 自定义Toast
- 装饰模式
- Supervisor 守护 dotnetcore 程序
- RxJava的封装和研究
- Codeforces Round #382C. Tennis Championship(递推+斐波那契数列)
- 数据结构与算法分析基础----概念初步&最大子序和四种算法C++实现&对分查找&欧几里德算法
- 自定义Toast
- python获取指定日期范围内的每一天,每个月,每季度
- 解决RecyclerView图片错位
- sql CASE()函数
- Textview增加图片并实现点击与文字设置不同大小颜色
- Gradle常见错误解决
- thinkPHPM 与D方法具有什么区别
- 软件加密破解分析
- 安卓项目中常用的第三方框架推荐