Android--通知之Toast

简介:

前言

  这篇博客讲解一下Android下的一个简单信息提示的方式:Toast。如果一直看我的博客,会发现在之前的Demo中,一直有用到Toast去提示消息,在这篇博客中就专门讲它。Toast提供一个浮动的简单的小显示块,并且不影响任何其他操作,仅仅用于提示信息,并且会在超时后,自动消失。因为它的及时性已经自动消失的特性,不适合提示一些重要的信息,如果有重要的信息,可以使用Notification提示用,Notification之后会介绍。在本片博客中将讲解Toast的常规使用,以及特殊的属性、方法的使用,并且会说明如何使用Toast创建一个自定义的内容,并且最后会对以上讲解的内容给出代码示例。

Toast

  Toast是为了给当前视图显示一个浮动的显示块,它永远不会获得焦点。一般用于提示一些不那么引人注目,但是又希望用户看见的消息,无需用户自己维护它的消失。

  如果只是提示简单的信息,使用Android为Toast提供的两个静态的方法最为方便,它们会返回一个Toast对象,如果需要显示,只需要调用show()方法显示即可,下面是这两个方法的签名:

  • static Toast makeText(Context context,int resId,int duration).
  • static Toast makeText(Context context,CharSequence text,int duration)

  上面两个方法,参数大致相同,一个上下文对象Context,一个显示的消息来源,一个设置持续时间。消息来源可以指定String资源,使用<string.../>标签在XML资源文件中定义,还可以指定一个字符串用于消息展示。最后的duration参数设置了Toast的持续时间,一般使用Toast自带的两个整形的常量:LENGTH_LONG(1,时间稍长)、LENGTH_SHORT(0,时间稍短),针对不同的使用场景,选择不用的持续时间。

  Toast消息的默认显示位置在屏幕的中间偏下,Android也为开发者提供了方法设置Toast消息的位置,使用setGravity(int gravity, int xOffset, int yOffset)方法即可设置,它有三个参数,gravity设置一个重力方向,另外两个设置水平和垂直方向的偏移量。

  示例:使用Toast提示一个简单的消息,显示在屏幕中间。

复制代码
1 btnToast1.setOnClickListener(new View.OnClickListener() {            
2             @Override
3             public void onClick(View v) {
4                 // TODO Auto-generated method stub
5                 Toast toast=Toast.makeText(MainActivity.this,"Toast提示消息",Toast.LENGTH_SHORT    );
6                 toast.setGravity(Gravity.CENTER, 0, 0);
7                 toast.show();
8             }
9         });
复制代码

  显示效果:

 

自定义消息

  无论是从美观的角度、还是用户视觉体验的角度,很多时候都不仅仅需要显示一简单的文本信息。如果需要显示用户自定义的消息,那么就不能使用上面介绍的静态方法来得到一个Toast对象,而是需要使用Toast的构造方法进行初始化,然后对相应的属性进行设置。一般对于自定义布局的显示,会使用XML定义好一个布局文件,这样清晰明朗。

  步骤如下:

  1. 使用LayoutInflater.from(Context).inflate(int , ViewGroup)方法动态获得需要显示的View。
  2. 对View中的控件进行必要操作。
  3. 使用构造函数初始化Toast。
  4. 使用Toast.setView(View)进行设置。
  5. 最后使用show()方法展示Toast消息。

  下面通过一个示例展示自定义布局在Toast中的显示:

  Toast消息的布局代码:

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3               android:id="@+id/toast_layout_root"
 4               android:orientation="horizontal"
 5               android:layout_width="fill_parent"
 6               android:layout_height="fill_parent"
 7               android:padding="8dp"
 8               android:background="#DAAA"
 9               >
10     <ImageView android:src="@drawable/ic_launcher"
11                android:layout_width="wrap_content"
12                android:layout_height="wrap_content"
13                android:layout_marginRight="8dp"
14                />
15     <TextView android:id="@+id/text"
16               android:layout_width="wrap_content"
17               android:layout_height="wrap_content"
18               android:textColor="#FFF"
19               />
20 </LinearLayout>
复制代码

  Toast消息的显示代码:

复制代码
 1 btnCustomToast.setOnClickListener(new View.OnClickListener() {
 2             
 3             @Override
 4             public void onClick(View v) {
 5                 View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.toast_layout,null    );
 6                 TextView tv=(TextView)view.findViewById(R.id.text);
 7                 tv.setText("自定义提示Toast");
 8                 Toast toast=new Toast(MainActivity.this);
 9                 toast.setView(view);
10                 toast.show();
11                 
12             }
13         });
复制代码

 效果展示:

  源码下载

总结

  以上就讲解了Toast的使用,在Android中,Toast提示消息的方式会经常被用到,所以掌握它是有必要的,之后会介绍另外一种消息提示方式,Notification。


本文转自承香墨影博客园博客,原文链接:http://www.cnblogs.com/plokmju/p/android_Toast.html,如需转载请自行联系原作者


相关文章
|
5月前
|
Android开发
android之Toast使用
android之Toast使用
48 0
|
11月前
|
Android开发 数据安全/隐私保护 开发者
ApeForms | C#WinForm弹出简易的消息提示框 (仿Android Toast消息提示)
在使用手机的时候经常会见到屏幕的中下方会弹出消息提示框,它就是Toast。 ApeForms中也实现了非常简洁易用Toast,与Android的Toast不同的是,ApeForms允许开发者设置不同的弹出模式。此外还针对PC端有鼠标的情况进行了改进,当鼠标悬停于消息弹出框之上时弹出框不会消失。
298 0
ApeForms | C#WinForm弹出简易的消息提示框 (仿Android Toast消息提示)
|
Android开发
Android 快别用Toast了,来试试Snackbar
🔥 应用场景 🔥 源码 💥 Toast.setGravity() 💥 Toast.isSystemRenderedTextToast() 🔥 Toast 提供的方法 💥 Toast.setView() 源码 🔥 Snackbar 💥 代码实现 💥 效果 💥 工具类
903 0
Android 快别用Toast了,来试试Snackbar
|
存储 JavaScript 安全
教你如何用一行命令:Android打包->上传->发测试包通知
教你如何用一行命令:Android打包->上传->发测试包通知
218 0
教你如何用一行命令:Android打包->上传->发测试包通知
|
Android开发
android中的提示信息显示方法(toast应用)
android中的提示信息显示方法(toast应用)
232 1
|
存储 消息中间件 API
下沉式通知的一种实现 | Android悬浮窗Window应用
当你浏览公众号时来了一条新消息,通知在屏幕顶部会以自顶向下动画的形式入场,而且它是跨界面的全局浮窗(效果如下图)。虽然上一篇中抽象的浮窗工具类已经能实现这个需求。但本文在此基础上再封装一些更加友好的
313 0
|
API Android开发
干货|APP自动化Android特殊控件Toast识别
干货|APP自动化Android特殊控件Toast识别
|
XML 安全 API
你真的懂android通知消息吗?
你真的懂android通知消息吗?
381 0
你真的懂android通知消息吗?
|
Android开发
从Toast显示原理初窥Android窗口管理
从Toast显示原理初窥Android窗口管理
180 0
从Toast显示原理初窥Android窗口管理
|
Android开发
Android之Toast的高级使用
Android之Toast的高级使用
199 0