Toast用于向用户显示一些帮助或提示,有三种展现形式:
• 文本类型
• 图片类型
• 复合类型
6.2.1 文本类型
下面看看一个文本类型Toast的例子,如图6-13所示,点击按钮会在屏幕的中下部分出现一个气泡,过一会又会消失了。
 

图 6-13图文本类型Toast
实现方式请参考代码清单6-10:
【代码清单6-10】 chapter6_6/src/com/work/Toast_1.java
public class Toast_1 extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button btn01 = (Button) findViewById(R.id.Button01);
btn01.setText(R.string.word);
btn01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(Toast_1.this, "你好我是Toast!", Toast.LENGTH_LONG)
.show();
}

});
}
}
Toast.makeText(…).show()实现一个Toast,Toast.LENGTH_LONG指定显示的时间是长时间模式,还有一个短时间模式Toast.LENGTH_SHORT。
6.2.2 图片类型
Toast可以显示文本信息,也可以显示图片信息,下面图6-14所示就是图片类型的Toast。
 

图6-14图片类型Toast
实现方式请参考代码清单6-11:
【代码清单6-11】 chapter6_6/src/com/work/Toast_2.java
public class Toast_2 extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button btn01 = (Button) findViewById(R.id.Button01);
btn01.setText(R.string.pictoast);
btn01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ImageView view = new ImageView(Toast_2.this);
view.setImageResource(R.drawable.image);
Toast toast = new Toast(Toast_2.this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
}
});
}
}
使用Toast的Toast(Toast_2.this)构造方法构造一个Toast对象,然后再通过toast.setView(view)方法设定一个View对象,这个View对象是一个图片控件对象,此时Toast在显示的时候就会显示出一个图片了。
6.2.3 复合类型
Toast是可以显示图片和文本组合的,下面看看复合类型Toast例子,如图6-15所示。
 

图6-15 复合类型Toast
实现方式请参考代码清单6-12:
【代码清单6-12】 chapter6_6/src/com/work/Toast_3.java
public class Toast_3 extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button btn01 = (Button) findViewById(R.id.Button01);
btn01.setText(R.string.mixtoast);
btn01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast toast = new Toast(Toast_3.this);
LinearLayout layout = new LinearLayout(Toast_3.this);
layout.setOrientation(LinearLayout.VERTICAL);

ImageView view = new ImageView(Toast_3.this);
view.setImageResource(R.drawable.image);
TextView textView = new TextView(Toast_3.this);
textView.setText("火箭队");

layout.addView(view);
layout.addView(textView);
toast.setView(layout);
toast.show();
}
});
}
}
本例中通过创建一个ImageView类型的对象和TextView类型的对象,并把这两个对象通过layout.addView()方法放入到LinearLayout布局对象中,再把toast.setView(layout)放入到Toast对象中。
6.2.4 自定义显示位置Toast
Toast默认显示的位置已经很清楚了。现在看看如何自定义Toast显示的位置,如图6-16所示:
 

图6-16 自定义Toast位置
实现方式请参考代码清单6-13:
【代码清单6-13】 chapter6_6/src/com/work/Toast_4.java
public class Toast_4 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn01 = (Button) findViewById(R.id.Button01);
btn01.setText(R.string.custom);
btn01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast toast = Toast.makeText(Toast_4.this,
"你好我是自定义位置的Toast!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
});
}
}
toast.setGravity(Gravity.CENTER, 0, 0)方法设置Toast的位置,第一个参数是个对齐方式的常量,第二参数是在x轴的偏移量,第三个参数是在y轴的偏移量。
                                     出自《Android开发案例驱动教程》第六章

转载于:https://www.cnblogs.com/516inc/archive/2011/10/28/2228087.html

关于Toast 详解相关推荐

  1. Android特效 五种Toast详解

    Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失.而且Toast主要用于向用户显示提示消 ...

  2. Linux下mpio 多路径,Windows原生MPIO存储多路径软件详解与应用

    介绍 在Windows Server 2008和Windows Server 2008 R2中开始支持Native Multipathing(MPIO)软件作为操作系统的一个组件存在.EMC旗下的存储 ...

  3. ueditor上传组件显示乱码_最全面的移动端 UI组件设计详解:中篇

    上一期给大家讲解了<最全面的移动端UI组件设计详解:上篇>,主要分享了:布局组件和导航组件2个部分:这次给大家带来:基础组件.表单组件和反馈组件详解,希望你在设计APP.小程序.H5页面中 ...

  4. RxJava操作符在android中的使用场景详解(一)

    转载请注明出处:http://www.wangxinarhat.com/2016/04/19/2016-04-19-rxjava-android-operate1/ 最近学习了RxJava在andro ...

  5. 【Android 应用开发】Android - 按钮组件详解

    总结了Android中常用的按钮用法 示例源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6852091 -- GitHu ...

  6. Fragment详解之四——管理Fragment(2)

    相关文章: 1.<Fragment详解之一--概述> 2.<Fragment详解之二--基本使用方法> 3.<Fragment详解之三--管理Fragment(1)> ...

  7. android最全面试题71道题 详解

    Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D ...

  8. Retrofit2 multpart多文件上传详解

    原文出处:http://www.chenkaihua.com/2016/04/02/retrofit2-upload-multipart-files.html Retrofit2是目前很流行的andr ...

  9. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

最新文章

  1. android 可折叠标题栏,ViewPager + Fragment + 折叠式标题栏异常
  2. 如何用计算机完成一片文稿制作,怎样在家用电脑上制作幻灯片?
  3. 全球与中国数位屏市场前景展望与未来规划动向研究报告2022-2028年版
  4. AutoPep8-----Pycharm自动排版工具
  5. 百度自动推送html5,百度暂停 JS 代码自动推送功能,代码是否需要删除?
  6. 如何让手机1秒打开健康码 ,任何机型!
  7. Extjs DateField onchange
  8. idea findbugs使用_IDEA如何协同开发统一代码风格?编码不规范如何解决?
  9. 盗墓笔记android,盗墓笔记手游下载
  10. 50. PHP 页面静态化(3)
  11. AdBlock广告拦截插件的实现原理
  12. dvhop三边测量法MATLAB,基于非测距的DV-Hop定位算法改进
  13. CentOS安装YAPI
  14. openpyxl进行excel的整行复制
  15. 财务考PMP有用吗?
  16. 点击化学DBCO修饰药物(DBCO-PEG-雷替曲塞,甲氨喋呤MTX,培美曲塞,磺胺地索辛)
  17. spark使用supervisor守护进程
  18. js手动触发这个 onchange 事件
  19. 链路聚合-LACP模式
  20. 深信服虚拟机服务器功率,深信服aSV服务器虚拟化试用(二)

热门文章

  1. linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本
  2. mysql case when 使用
  3. kafka日志格式和分区
  4. 【转载】石油天然气常用单位换算
  5. 【冷笑话】看谁跑的快?
  6. VB中窗体模块、标准模块、类模块的区别
  7. 美国人民:机器人好棒棒,花钱买一个?1000块不能再高了
  8. 景驰无人车总部落户广州:明年最低量产500辆,回应百度官司
  9. D2Admin - 基于vue的清新后台模板
  10. 一步一步使用 DialogFragment 封装链式调用 Dialog