当前位置: 代码迷 >> Android >> android Toast展示消息的几种方法
  详细解决方案

android Toast展示消息的几种方法

热度:26   发布时间:2016-04-28 03:52:53.0
android Toast显示消息的几种方法

作者:张宗硕?

? ? ? ? Android中提供一种简单的Toast消息提示框机制,可以在用户点击了某些按钮后,提示用户一些信息,提示的信息不能被用户点击,Toast的提示信息根据用户设置的显示时间后自动消失。Toast的提示信息可以在调试程序的时候方便的显示某些想显示的东西。

两种方法创建Toast

?

第一种方法的Java代码:?

?

?

makeText(Context?context,?int?resId,?int?duration)?

?

?

参数:contexttoast显示在哪个上下文,通常是当前ActivityresId指显示内容引用Resouce那条数据,就是从R类中去指定显示的消息内容;duration指定显示时间,Toast默认有LENGTH_SHORTLENGTH_LONG两常量,分别表示短时间显示和长时间显示。

?

?

?

第二种方法的Java代码:?

?

?

makeText(Context?context,?CharSequence?text,?int?duration)?

?

?

参数contextduration与第一个方法相同,参数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代码?

?

[java] view plaincopyprint?
  1. <span?style="font-size:?18px;">//?带图片的Toast???
  2. ????????Button?btn2?=?(Button)?findViewById(R.id.toast2);???
  3. ????????btn2.setOnClickListener(new?OnClickListener()?{???
  4. ????????????public?void?onClick(View?v)?{???
  5. ????????????????//?定义一个Toast???
  6. Toast?toast?=?Toast.makeText(ToastDemoActivity.this,?"这是一个代图片的Toast!",?Toast.LENGTH_LONG);???
  7. ???????????????//?定义一个ImageView???
  8. ???????????????ImageView?imageView?=?new?ImageView(ToastDemoActivity.this);???
  9. ???????????????imageView.setImageResource(R.drawable.icon);???
  10. ???????????????//?获得Toast的View???
  11. ???????????????View?toastView?=?toast.getView();???
  12. ???????????????//?定义一个Layout,这里是Layout???
  13. ???????????????LinearLayoutlinear?Layout?=?new?LinearLayout(ToastDemoActivity.this);???
  14. ???????????????linearLayout.setOrientation(LinearLayout.HORIZONTAL);???
  15. ???????????????//?将ImageView和ToastView合并到Layout中???
  16. ???????????????linearLayout.addView(imageView);???
  17. ???????????????linearLayout.addView(toastView);???
  18. ???????????????//?替换掉原有的ToastView???
  19. ???????????????toast.setView(linearLayout);???
  20. ???????????????toast.show();???
  21. ????????????}???
  22. ????????});</span><span?style="font-size:?16px;">??
  23. </span>??
  相关解决方案