Toast(提示框):
1.概述:
这是android提高的提醒方式,会在一段时间自动消失。 没有焦点,显示时间有限但不会打断用户的操作。
Toast不依赖于某个界面,它依赖于应用程序Application。
2.使用:
<1>有一个弹出Toast的触发点,例如按钮
通过findViewById(R.id.button_1)关联到布局中的按钮
<2>给按钮加点击事件;’
<3>在点击事件中利用:
Toast.makeText(FirstActivity.this,”弹出的信息”,Toast.LENGTH_SHORT).show();
分析:使用Toast中的静态方法makeText()创建对象,然后调用其show()方法。makeText()传入的三个参数(Toast要求的上下文,要显示的信息,显示的时长【可选择的两个参数:.LENGTH_SHORT和LENGTH_LONG】)
或者,第一个参数为getApplicationContext(),因为它依赖于应用程序Application。
<4>setGravity(int gravity,x偏移量,y偏移量);//设置Toast显示的位置。
注:左上角为原点0处。第一个参数可以是Gravity.位置(CENTER,LEFT,RIGHT),偏移量是指相对这个位置的偏移。
3.延伸功能:
1)makeText()创建提示后,更改的方法:
setText(); //更改文本
setDuration();//更改显示时间
setGravity();//更改显示的位置
注:一定是先用了makeText()。
2)加入富文本:
富文本最简单的方式,获取图片时:
注:用富文本如果填入图片,一定要设置图片的大小。
富文本范例:
这是一个简单的富文本,获得不同的字,和图片,图片是固定的:
1>获得Spanned。利用Html.fromHtml(,,)方法
2>setText()添加
Toast toast = Toast.makeText(getApplicationContext(), "这是个提示", Toast.LENGTH_SHORT);
toast.show();
toast.setGravity(Gravity.LEFT|Gravity.CENTER, 100, 0);
Spanned spanned = Html.fromHtml("我是<img src=''/>一个<font color='#55ff0000'>富文本</font>", new Html.ImageGetter() {
@Override
public Drawable getDrawable(String arg0) {//返回一张图片,但必须设置图片大小
Drawable drawable = getResources().getDrawable(R.drawable.liyifeng);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}
}, null);
toast.setText(spanned);
结果演示;
4.简单Toast范例:
结果演示:
5.自定义Toast
步骤:
1)自定义的Toast布局
2)点击事件中:
new Toast—->利用layoutinflater获得view——>setView()—->setDuration()【可以不设置】—–>show().
Toast mytoast = new Toast(getApplicationContext());
LayoutInflater flater = getLayoutInflater();
View toastView = flater.inflate(R.layout.mytoast, null);
TextView textViewToast = (TextView) toastView.findViewById(R.id.textView_toast);
textViewToast.setText("我是一个自定义的Toast");
mytoast.setView(toastView);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();
结果演示: