一只大二狗的Android历程--自定义Toast样式
来源:互联网 发布:微分几何 知乎 编辑:程序博客网 时间:2024/06/05 19:47
2017年3月14日 10:34 PM
今天看了点自定义Toast的文章,看了篇易懂的,自己改了下,在这里说一下
自定义Toast需要创建工具类和自定义样式(在这里感谢博主DayDayPlayPhone写的博文 《Android Toast的完全自定义与工具类的编写》的对我的启发)
其实就是按照Toast的样式自己写一个方法,然后再调用这个方法
比如说
Toast.makeText(Activity activity,String message,int Duration).show();
我们可以新建一个工具类,然后在类里新建一个静态全局方法customToast();
customToast(Activity activity,String message,int Duration){ 。。。。。。}
好了废话不多说,开始上源代码:
首先新建一个布局样式文件 toast.xml
<?xml version="1.0" encoding="utf-8"?><!--引用样式文件shape.xml--><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/shape"> <ImageView android:id="@+id/toast_iv" android:layout_width="20dp" android:layout_height="20dp" android:src="@drawable/coffe"/> <TextView android:gravity="center" android:id="@+id/toast_tv" android:textColor="@android:color/white" android:layout_marginLeft="0dp" android:layout_below="@id/toast_iv" android:layout_toRightOf="@id/toast_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:text="Text"/></RelativeLayout>
在Drawable里新建样式文件shape.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#6495ED"/> <corners android:radius="20dip"/> <padding android:right="10dp" android:bottom="5dp" /></shape>
然后新建类CT(注:CustomToast简写),类里有方法customToast()
import android.app.Activity;import android.text.Layout;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;/** * Created by li124 on 2017/3/14. */public class CT { //定义全局静态方法customToast //其中的参数对应Toast.makeText里的Activity ,message,Duration public static void customToast(Activity activity,String message,int Duration){ //使用布局加载器加载自定义的布局 View view= LayoutInflater.from(activity).inflate(R.layout.toast,null); //通过获取的文字设置到布局上 TextView title=(TextView)view.findViewById(R.id.toast_tv); title.setText(message); //新建一个Toast方法 Toast toast=new Toast(activity); //设置Toast的在屏幕的位置,第三个参数是x值,第四个参数是y值,距离底部的高度 toast.setGravity(Gravity.CENTER|Gravity.BOTTOM,0,500); //设置显示的时长 toast.setDuration(Duration); toast.setView(view); toast.show(); }}
然后在MainActivity里添加Button的点击事件,点击事件里引用方法
public void show(View view){ CT.customToast(this,"Press again", 0); }
对了,我好像忘了main_layout.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.eee.custom_toast.MainActivity"> <Button android:onClick="show" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="SHOW"/></RelativeLayout>
注:效果类似于QQ聊天时的气泡样式,我因为美工渣做不出透明的图片所以引用了网上别的博文的素材,版权原因我就不在这里演示了
1 0
- 一只大二狗的Android历程--自定义Toast样式
- 一只大二狗的Android历程--OnClickListener & Toast
- 一只大二狗的Android历程--简单自定义按钮样式(Custom Button Style)
- 一只大二狗的Android历程--自定义按钮样式(补充)
- 一只大二狗的Android历程--Snackbar的使用
- 一只大二狗的Android历程--开端
- 一只大二狗的Android历程--国际化(作业)
- 一只大二狗的Android历程--JSon解析
- 一只大二狗的Android历程--Activity之间的简单数据传递
- 一只大二狗的Android历程--Activity间数据交换的实例
- 一只大二狗的Android历程--PNG图片的Crunching Cruncher错误解决办法
- 一只大二狗的Android历程--文件输入输出流 & SharedPreference
- 一只大二狗的Android历程--JSon解析实例_天气预报
- 一只大二狗的Android历程--SQLite数据库CRUD操作
- android自定义的toast样式
- Android自定义Toast样式
- android Toast 自定义样式
- Android自定义Toast样式
- Ehome:智能家居之基于USB摄像头免驱的视频采集服务器
- c++字符函数库cctype使用练习
- 三天打鱼两天晒网问题
- eclipse中删除多余的tomcat server(2)
- Java Eclipse进行断点调试
- 一只大二狗的Android历程--自定义Toast样式
- 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项
- Receiver Operating Characteristic(ROC) Curve and Area Under Curve(AUC)
- Maven解读:项目依赖管理如何优化
- git概念 原理 使用
- linux 批量杀死进程的一个方法
- hadoop 2.7.3编译
- 用FFT求信号相位谱
- 树莓派:VNC远程登录Raspbian图形界面(tightvncserver)