Android自定义Toast样式实现方法详解
作者:FranzLiszt1847 发布时间:2022-06-28 01:24:10
标签:Android,Toast,样式
原生Toast样式
自定义Toast样式
创建样式
所谓自定义一个Toast就是建立一个布局文件,然后使用一个view容器承载,然后显示出来。Toast毕竟只是起到一个提示作用,不必要放太多控件去填充,反而会显得内容很拥挤,一般一个标题,一张图片,一段简短文字即可。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/white_radius_10">
<LinearLayout
android:layout_width="120dp"
android:layout_height="100dp"
android:gravity="center"
android:orientation="vertical"
android:layout_gravity="center">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/icon_error" />
<TextView
android:id="@+id/ErrorTips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="密码错误,请重试!"
android:textColor="#099A9F"
android:textSize="15sp"
android:ellipsize="end"/>
</LinearLayout>
</FrameLayout>
封装
因为我们在开发中需要频繁使用Toast,所以使用一个类将其封装起来,复用其功能,增强代码可读性,可行性。根据自己的开发需求,可以向外暴露修改内容,图片,颜色,文字大小等方法,由于Toast内附控件较少,就可以直接将其控件ID和布局文件定义为常量引用。
public class ToastFormat {
private Context context;
private TextView tipsText;
private Toast toast = null;
private static final int ContentID = R.id.ErrorTips;
private static final int LayoutID = R.layout.passworderror;
public ToastFormat(Context context){
this.context = context;
}
public void InitToast(){
if (toast == null) {
toast = new Toast(context);
View view = LayoutInflater.from(context).inflate(LayoutID, null, false);
tipsText = view.findViewById(ContentID);
toast.setView(view);
}
}
public void setGravity(int gravity){
toast.setGravity(gravity, 0, 0);
}
public void setText(String tips){
tipsText.setText(tips);
}
public void show(){
toast.show();
}
public void setShowTime(int time){
toast.setDuration(time);
}
public void setTextColor(int color){
tipsText.setTextColor(context.getResources().getColor(color));
}
public void setTextSize(float size){
tipsText.setTextSize(size);
}
}
引用
定义对象
private ToastFormat format;
初始化
format = new ToastFormat(MainActivity.this);
format.InitToast();
设置显示文字内容
format.setText("自定义Toast");
最后显示 Toast
format.show();
来源:https://blog.csdn.net/News53231323/article/details/123968086


猜你喜欢
- 本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列
- hadoop做的一个简单grep程序,可从文档中提取包含某些字符串的行/* * 一个简单grep程序,可从文档中提取包含莫些字符串
- 在IntelliJ IDEA中一不小心将你本地代码给覆盖了,这个时候,你 ctrl + z
- 前言WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏
- 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应, 同时我们又需要在工作线程中更新UI界面上的控件。但直接访
- 一、需要导入的jar1.commons-collections4-4.1.jar2.poi-3.17-beta1.jar3.poi-ooxm
- 前言之前用简书的时候一直是在web端,后来下载了客户端,看到了搜索的那个动画,就尝试的去写了,没写之前感觉挺容易的,写了之后,就感觉里面还是
- 先附上图片上传的代码jsp代码如下:<form action="${path}/upload/uploadPic.do&qu
- 最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方
- 本文实例展示了DevExpress获取TreeList可视区域节点集合的实现方法,是比较有实用价值的技巧。分享给大家供大家参考。具体实现方法
- 本文实例为大家分享了android自定义圆形倒计时显示控件的具体代码,供大家参考,具体内容如下先上效果图 - 倒计时结束代码块at
- 文件创建:File.Create(Application.StartupPath + "\\AlarmSet.txt")
- 本文是利用SharpPcap实现网络包的捕获的小例子,实现了端口监控,数据包捕获等功能,主要用于学习分享。什么是SharpPcap?Shar
- 给图片添加阴影效果,这是很常见的需求。第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下:show_view
- 将一个字符串转化成String[]数组,提供两种方法前言将字符串转化成数组提供两种方法:1.split("");2.to
- 上一篇已经获取到了用户的OpenId这篇主要是调用微信公众支付的统一下单APIAPI地址:https://pay.weixin.qq.com
- package com.action.android_test;import android.location.Location;impor
- 本文实例讲述了C#中datatable序列化与反序列化,分享给大家供大家参考。具体方法如下:一、datatable序列化public str
- 前言在《C# wpf Canvas中实现控件动态调整大小》中我们实现了Canvas中的控件动态调整大小,由于Grid也是可层叠布局,在Gri
- Java:对象创建和初始化过程1.Java中的数据类型 Java中有3个数据类型:基本数据类型(在Jav