快速查看

Toast是在屏幕表面显示片刻的一条消息,它不会抢占用户焦点(或者暂停当前的activity),所以它不接收用户输入

你可以自定义Toast的布局layout,使其包含图片

小编非常赞赏大家的学习热情,持续下去,成为android大牛并不遥远!:)

Toast通知是一条弹出显示在窗口表面的消息,它只占据足够显示消息内容的屏幕空间,并且用户当前的activity仍然保持可见和可操作。这个通知自动淡入淡出,并不接收交互事件。

下图显示了Alarm应用的一个toast通知的例子。当一个闹铃开启的时候,一条toast消息显示出来提醒你设置闹铃成功。

可以从Activity或者Service创建并显示一条toast消息。如果你从Service创建一条toast消息,它会显示在当前焦点的activity之上。

如果需要用户回应一个通知,可以考虑使用状态栏通知

基础

首先,用makeText()方法实例化一个Toast对象。该方法需要三个参数:当前应用的Context,文本消息,和toast的持续时间。该方法返回一个实例化过的Toast对象。你可以用show()方法将该toast通知显示出来,见下例:

Context context = getApplicationContext();

CharSequence text = "Hello toast!"

intduration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);

toast.show();

这个例子演示大部分你使用toast通知所需要的,你很少会需要其他的。有可能你会想要把toast放置在其他位置或者使用你自己的布局来代替默认的简单文本消息布局。下一节描述了如何使用它们。

你也可以链接调用方法已避免保留一个Toast对象,例如:

Toast.makeText(context, text, duration).show();

在下节中,你将看到如何创建每种类型的服务,以及如何在应用程序组件中使用它们。

定位你的toast

一个标准toast通知垂直剧中出现在靠近屏幕底部的位置。你可以通过setGravity(int, int, int)方法来改变其位置。三个参数分别是:一个Gravity常量,一个x方向的偏移值和一个y方向的偏移值。

例如,如果你决定让toast出现在左上角,你可以这样设置:

toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 0);

如果你想要向右移动,增加第二个参数的值;增加第三个参数的值向下移动。

创建自定义的Toast视图

如果一个简单的文本消息已经无法满足你的需求,你可以自己定义一个toast通知的布局layout。在XML或者代码中定义一个View的布局,并根View对象传递给setView(View)方法。

例如,你可以用如下所示XML创建右图中的toast通知的布局(保存为toast_layout.xml):

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="10dp"

android:background="#DAAA" >

android:layout_width="wrap_content"

android:layout_height="fill_parent"

android:layout_marginRight="10dp"/>

android:layout_width="wrap_content"

android:layout_height="fill_parent"

android:layout_textColor="#FFF"/>

注意LinearLayout元素的ID是“toast_layout"。你必须使用这个ID从XML中展开(inflate)布局layout,如下所示:

LayoutInflater inflater = getLayoutInflater();

View layout = inflater.inflate(R.layout.toast_layout,

(ViewGroup) findViewById(R.id.toast_layout_root));

ImageView image = (ImageView) layout.findViewById(R.id.image);

image.setImageResource(R.drawable.android);

TextView text = (TextView) layout.findViewById(R.id.text);

text.setText("Hello! This is a custom toast!");

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.setView(layout);

toast.show();

首先,通过getLayoutInflater()(或者getSystemService())取得LayoutInflater,然后用inflate(int, ViewGroup)从XML展开(inflate)布局layout。第一个参数是layout资源ID,第二个参数是根View。你可以使用这个布局来查找其内部更多的View对象。因此获得和定义ImageView和TextView元素的内容。最后,用Toast(Context)创建一个新的toast并设置属性,例如重心和持续时间。然后调用setView(View)并传入布局对象,你就可以通过show()来显示自定义布局的toast了。

注意: 不要使用Toast的公共构造函数,除非你要用setView(View)来定义布局。如果你没有自定义布局,你必须使用makeText(Context, int, int)来创建toast。

android开发toast通知,Toast Notifications相关推荐

  1. Android开发之自定义Toast(带详细注释)

    因为工作需求,所以自己研究了自定义Toast,这里做出总结: 在此之前有一点需要提前说明:Toast与其他组件一样,都属于UI界面中的内容,因此在子线程中无法使用Toast弹出提示内容,如果强行在子线 ...

  2. Android开发UI之Toast的使用

    Toast,A toast provides simple feedback about an operation in a small popup. 对于操作提供一个简单反馈信息. 官网链接:htt ...

  3. Android开发之自定义Toast(吐司)

    先看下效果一目了然: 直接上代码 Toast toast = Toast.makeText(getApplicationContext(), "带图片的Toast", Toast. ...

  4. android notification自动消失,Android开发 -- 状态栏通知Notification、NotificationManager详解...

    本想自己写一个的,但是看到这篇之后,我想还是转过来吧,实在是非常的详细: 在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? ...

  5. 第三部分:Android 应用程序接口指南---第二节:UI---第八章 Toast通知

    第8章 Toast通知 Toast通知是在窗口前面弹出的信息.它只占有信息所需要的空间量,并且用户当前的activity仍然是可见的.可互动的.这种通知自动地淡入和淡出,它不接受交互事件.他相当于一种 ...

  6. WP8.1学习系列(第二章)——Toast通知

    Toast 通知概述(Windows 运行时应用) 你的应用要想通过 Toast 通知通信,必须在应用的清单文件中声明它支持 Toast.Toast 通知可包含文本,并且 Windows 上的 Toa ...

  7. 快速构建Windows 8风格应用34-构建Toast通知

    引言 开发过WindowsPhone应用或者使用过WindowsPhone手机的开发者都知道,我们会收到一些应用的提示信息,这些提示信息出现在手机的上端,并且停留几秒钟后会自动消失,当然如果我们点击弹 ...

  8. Android通知怎么实现?Android开发如何操作相机和相册?

    Android通知怎么实现?Android开发如何操作相机和相册? 前言 八.Android通知怎么实现?Android开发如何操作相机和相册? 8.1 通知介绍 8.2 通知的基本用法 8.3 An ...

  9. android 禁用通知栏_如何在Android上禁用通知

    android 禁用通知栏 Notifications are great, and Android's notification system is arguably the best out th ...

最新文章

  1. ora-03115:不支持的网络数据类型 oracle,Oracle10g新增DBMS_FILE_TRANSFER包(二)
  2. 【机器学习基础】前置知识(二):30分钟掌握常用Jupyter Notebook用法
  3. html手机pc不同页面,PC端和手机端如何同时生成静态页
  4. 极限与连续知识点总结_考研数学一试卷全面分析,历年题型和知识点整理,送给2021的学子...
  5. 2021亚太内容分发大会 阿里云荣获三项大奖
  6. DHCP+TFTP+VSFTP+pxelinux+kickstart实现RedHat的自动安装
  7. VS Code 中的文件添加图标的插件vscode-icons
  8. iQOO手机正式发布,全新性能旗舰打造爆燃体验
  9. Ogre学习笔记Basic Tutorial 前四课总结
  10. chrome driver 获取 session_BOSS直聘招聘信息获取之使用webdriver进行爬取
  11. linux 16.04系统下载,【ubuntu16.04】ubuntu(乌班图系统)镜像文件下载 v16.04 稳定版本-七喜软件园...
  12. 计算机网盘打不开,电脑百度网盘无法打开视频的解决方法|电脑百度网盘无法打开视频如何解决...
  13. 佳能7660cdn 评价_佳能Canon LBP7660Cdn 驱动
  14. 【Sentry使用】自定义transaction
  15. OneDrive 挂载为本地磁盘Ubuntu
  16. php读取移动硬盘数据,移动硬盘数据恢复
  17. 第46讲 Android Camera2 API AWB自动白平衡
  18. Druid在有赞的实践
  19. Java 并发面试题解
  20. c语言的中打印出鸟图形,教你画出一只萌萌哒小鸟【PS教程】

热门文章

  1. iOS推送:要支持戴口罩解锁了!以为是黑科技,原来是骗我买iWatch...
  2. 8 种常见的SQL错误用法
  3. 华为提出十大数学挑战!解出一个就是年薪百万!
  4. 2020年最漂亮的Linux发行版
  5. 如何停止一个正在运行的线程?
  6. Spring Cloud Config采用数据库存储配置内容
  7. 湖北黄冈中学2021年高考成绩查询,【喜报】2020年黄冈中学高考成绩出炉,600分以上人数556人...
  8. 【redis】布隆过滤器详解
  9. COCO数据集数据转换为XML格式
  10. python 从深度相机realsense生成pcl点云