安卓toast弹窗
toast弹窗是安卓的一个常用控件,它可以便利的获取上下文对象的地方,进行弹窗提示。本文不追究其中原理,只研究方法。toast的几个常用方法有四种。分别是普通弹窗,改变位置的弹窗,图片弹窗,自定义弹窗。
1,普通toast弹窗
Toast.makeText()是一个有参函数,参数值有三个。第一个参数是当前的上下文控件,getApplicationContext()获取上下文对象或this获取当前对象。
第二个参数是你自己要显示的文字。
第三个参数是显示的时间长短。有两种形态的值,一个是ms为单位。一个是长的3.5s和短的值2s。
但是这种toast普通弹窗不能点按钮取消,只能等待时间过去。自行消失。是典型的提醒框。
Toast toast=Toast.makeText(this, "显示文字", 10ms);
toast.show();
//this代表当前对象,"显示文字"是在提醒框的文字
//三种形态10ms,Toast.LENGTH_LONG长的3.5s,Toast.LENGTH_SHORT短的2s
//显示提醒框
2,设置Toast弹窗弹出的位置
Toast.setGravity()是一个有参函数,参数值也是三个。第一个参数设置toast弹窗在屏幕中显示的位置Gravity.top置顶,Gravity.center居中,Gravity.bottom底部。
第二个参数是设置x轴的值,正数为右,负数为左。
第三个参数是设置y轴的值,正数为上,负数为下。
toast.setGravity(Gravity.TOP, 0, 0);
//设置顶部显示,偏移量为0
3,Toast弹窗中有图片
在弹窗中添加图片,其实本质是给弹窗视图添加一个图片视图,弹窗视图中有布局对象,在布局对象中添加图片视图。 toastView.addview(图片视图,0)ImageView img= new ImageView(this);
//创建图片视图对象 ,this获取当前文件
img.setImageResource();
//设置图片
LinearLayout toastView = (LinearLayout) toast.getView();
//获得toast线性布局
toastView.setOrientation(LinearLayout.HORIZONTAL);
//设置线性布局为横向
toastView.addView(img, 0);
//将Img在加入到此布局中的第一个位置
4,自定义Toast弹窗
大概的原理是这样的new 一个toast类对象。然后你可以在类里写东西。也可以实例化一个弹窗对象,然后赋给新的对象样式。 这些是下面代码的详解linflate()方法
layoutlinflater类方法
LayoutInflater inflater=LayoutInflater.from(this);//创建一个layoutInFlater类对象,获取的控件变成视图
View root=inflater.inflate(R.layout.toast, null);//将布局文件/res/layout/toast.xml实例化为root对象,从当前对象中提取视图。
Toast toast=new Toast(MainActivity.this);//完全自定的toast要用构造函数来生成对象
toast.setView(root);//设置自定义toast样式
toast.setDuration(Toast.LENGTH_LONG);//设置toast的显示时间
toast.show();