作者:张宗硕?
? ? ? ? Android中提供一种简单的Toast消息提示框机制,可以在用户点击了某些按钮后,提示用户一些信息,提示的信息不能被用户点击,Toast的提示信息根据用户设置的显示时间后自动消失。Toast的提示信息可以在调试程序的时候方便的显示某些想显示的东西。
两种方法创建Toast
?
第一种方法的Java代码:?
?
?
makeText(Context?context,?int?resId,?int?duration)?
?
?
参数:context是toast显示在哪个上下文,通常是当前Activity;resId指显示内容引用Resouce那条数据,就是从R类中去指定显示的消息内容;duration指定显示时间,Toast默认有LENGTH_SHORT和LENGTH_LONG两常量,分别表示短时间显示和长时间显示。
?
?
?
第二种方法的Java代码:?
?
?
makeText(Context?context,?CharSequence?text,?int?duration)?
?
?
参数context和duration与第一个方法相同,参数text可以自己写消息内容。
?
?
用上面任意方法创建Toast对象之后调用方法show()即可显示。
?
?
Java代码:
?
?
Toast?toast?=?Toast.makeText(ToastDemoActivity.this,?"这是一个普通的Toast!",?Toast.LENGTH_SHORT);?
?
?
toast.show();
?
?
?
设置Toast显示位置
两种方法方法可以设置显示位置:
?
?
setGravity(int?gravity,?int?xOffset,?int?yOffset)三个参数分别表示(起点位置,水平向右位移,垂直向下位移)?方法一:
?
?
setMargin(float?horizontalMargin,?float?verticalMargin)?方法二:
?
?
?以横向和纵向的百分比设置显示位置,参数均为float类型(水平位移正右负左,竖直位移正上负下)
?
?
Java代码
?
?
//?设置Toast显示位置(起点位置,水平向右位移,垂直向下位移)?
?
?
toast.setGravity(Gravity.TOP?|?Gravity.LEFT,?0,?200);?
?
?
//?Toast显示位置,以横向和纵向的百分比计算,参数均为float类型(水平位移正右负左,竖直位移正上负下)?
?
?
toast.setMargin(-0.5f,?0f);
?
?
?
自定义Toast
下面这段代码可以显示一个带图片的Toast效果:
Java代码?
?
- <span?style="font-size:?18px;">//?带图片的Toast???
- ????????Button?btn2?=?(Button)?findViewById(R.id.toast2);???
- ????????btn2.setOnClickListener(new?OnClickListener()?{???
- ????????????public?void?onClick(View?v)?{???
- ????????????????//?定义一个Toast???
- Toast?toast?=?Toast.makeText(ToastDemoActivity.this,?"这是一个代图片的Toast!",?Toast.LENGTH_LONG);???
- ???????????????//?定义一个ImageView???
- ???????????????ImageView?imageView?=?new?ImageView(ToastDemoActivity.this);???
- ???????????????imageView.setImageResource(R.drawable.icon);???
- ???????????????//?获得Toast的View???
- ???????????????View?toastView?=?toast.getView();???
- ???????????????//?定义一个Layout,这里是Layout???
- ???????????????LinearLayoutlinear?Layout?=?new?LinearLayout(ToastDemoActivity.this);???
- ???????????????linearLayout.setOrientation(LinearLayout.HORIZONTAL);???
- ???????????????//?将ImageView和ToastView合并到Layout中???
- ???????????????linearLayout.addView(imageView);???
- ???????????????linearLayout.addView(toastView);???
- ???????????????//?替换掉原有的ToastView???
- ???????????????toast.setView(linearLayout);???
- ???????????????toast.show();???
- ????????????}???
- ????????});</span><span?style="font-size:?16px;">??
- </span>??