全栈工程师开发手册 (作者:栾鹏)
安卓教程全解

安卓Toast显示提示消息。

使用系统自带Toast提示框

//显示一个Toast
private void displayToast() {Context context = this;String msg = "要显示的消息";        //要显示的消息int duration = Toast.LENGTH_SHORT;//显示时长Toast toast = Toast.makeText(context, msg, duration);  //创建弹出窗口//自定义toast位置int offsetX = 0;int offsetY = 0;toast.setGravity(Gravity.BOTTOM, offsetX, offsetY);   //设定显示位置toast.show();   //显示提示框
}

使用view来自定义一个Toast

private void displayCustomViewToast() {Context context = getApplicationContext();String msg = "要显示的消息";int duration = Toast.LENGTH_LONG;Toast toast = Toast.makeText(context, msg, duration);toast.setGravity(Gravity.BOTTOM, 0, 0);//自定义一个view,你也可以直接将xml转化为view对象LinearLayout ll = new LinearLayout(context);ll.setOrientation(LinearLayout.VERTICAL);TextView myTextView = new TextView(context);myTextView.setText(msg);myTextView.setTextColor(Color.RED);int lHeight = LinearLayout.LayoutParams.FILL_PARENT;int lWidth = LinearLayout.LayoutParams.WRAP_CONTENT;ll.addView(myTextView, new LinearLayout.LayoutParams(lHeight, lWidth));ll.setPadding(40, 50, 0, 50);//为toast设置viewtoast.setView(ll);toast.show();}

Toast实时提醒子线程传来的消息

由于toast只能在主线程中打开,所以如果你的函数在子线程中运行,需要向主线程发送信号,主线程接收信号后,才能打开toast

包含三个步骤,1、开启子线程,2、在主线程中定义消息处理对象,负责接收子线程传来的消息,进更新UI,3、子线程中向主线程定义的消息处理对象发送消息。

实现方法有两种:

第一种方法:

    //启动子线程private void open_subthread() {Thread thread = new Thread(null, doBackgroundThreadProcessing,"Background");thread.start();}//定义子线程private Runnable doBackgroundThreadProcessing = new Runnable() {public void run() {//这里是你要进行的计算//....//向主线程发送信息handler.sendEmptyMessage(0);}};//定义一个消息机制,接收子线程信息private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 0:Context context = getApplicationContext();String msgtext = "显示消息";int duration = Toast.LENGTH_SHORT;Toast.makeText(context, msgtext, duration).show();break;}}};

第二种方法:

    //启动子线程private void open_subthread() {Thread thread = new Thread(null, doBackgroundThreadProcessing,"Background");thread.start();}Handler handler = new Handler();//定义子线程private Runnable doBackgroundThreadProcessing = new Runnable() {public void run() {//这里是你要进行的计算//....//向主线程发送信息handler.post(doUpdateGUI);  //子线程向GUI主线程发送更新消息}};//执行更新GUI方法的Runnableprivate Runnable doUpdateGUI = new Runnable() {public void run() {Context context = getApplicationContext();String msg = "显示消息";int duration = Toast.LENGTH_SHORT;Toast.makeText(context, msg, duration).show();}};

安卓Toast显示提示消息(自定义view,根据子线程消息显示提示)相关推荐

  1. Android安卓仿IOS音量调节-自定义view系列(4)

    Android安卓仿IOS音量调节-自定义view系列 功能简介 主要实现步骤 xml相关属性设置 java代码 Android技术生活交流 更多其他页面-自定义View-实用功能合集:点击查看 Gi ...

  2. 自定义view实现未读消息提示(小红点)

    转载:http://blog.csdn.net/qq_28268507/article/details/70314844 自定义view继承RadioButton public class Notif ...

  3. 自定义VIEW实现应用内消息提醒上下轮播

    开题贴上这张图,相信我不解释今天分享的内容,大家也已经知道了,接下来我就结合代码为大家讲解一下,这个消息自动轮播VIEW的具体实现方式. 需求分析: 1.在ITEM上随着一条消息滑出之后,下一条消息自 ...

  4. android显示字符串,Android自定义View用切图显示字符串

    近期开发收音机有个需求,将频率值以图片的形式显示出来(如结尾效果图所示).然而,一开始用TextView写出来的效果太丑了,提交上去肯定不合格.于是乎我想到了写一个自定义View,将频率的数字切图排布 ...

  5. java实现未读消息提醒_Android自定义View之未读消息提示

    一个轻量级的仿微信未读消息提示 大家好,我是接触安卓不久的小菜鸟,今天花了一晚上封装了一个类似微信未读消息提示的安卓控件.由于技术问题,所以功能不是很强大,没有动画,但是满足基本需求还是可以的.下面是 ...

  6. 让自定义view宽高成比例显示

    有时候我们自定义一个View,比如ImageView,我们需要让它宽高按照一定的比例显示,例如在ImageView在GridView中显示,GridView设置了3列,由于ImageVIew的宽度会根 ...

  7. [安卓开发]弹幕滚幕效果自定义View之BarrageView|支持点击事件|隐藏不滞留|颜色随机|大小速度范围随机

    安卓弹幕滚幕效果自定义View之BarrageView|支持点击事件|隐藏不滞留|颜色随机|大小速度范围随机 1.简介 项目地址: https://github.com/tpnet/BarrageVi ...

  8. 安卓自定义View进阶-分类与流程

    自定义View绘制流程函数调用链(简化版) 一.自定义View分类 我将自定义View分为了两类(sloop个人分类法,非官方): 1.自定义ViewGroup 自定义ViewGroup一般是利用现有 ...

  9. 【Android】自定义View、画家(画布)Canvas与画笔Paint的应用——画图、涂鸦板app的实现

    利用一个简单的画图app来说明安卓的图形处理类与自定义View的应用. 如下图,有一个供用户自己任意画图.涂鸦的app, 这里不做那么花俏了,仅提供黑白两色,但可以改变笔尖的粗细. 实质上这里的橡皮擦 ...

最新文章

  1. fatal error C1021: 无效的预处理器命令“warning”
  2. 驰为hi10u盘启动linux,驰为Hi10 Plus二合一平板电脑:双系统更有玩头
  3. python实现文件下载-Python 实现文件下载
  4. pip install pygame_使用 Python 和 Pygame 模块构建一个游戏框架!
  5. java技术入门培训_入门java怎么自学?推荐谁的课程?
  6. 在openstack环境中安装rackspace private cloud --1 环境准备
  7. FFT实现高精度乘法
  8. n维椭球体积公式_干掉公式 —— numpy 就该这么学
  9. python读取rar文件_Python 解压缩文件详解!
  10. 服务器控制口协议,服务器管理ipmi接口协议的扩展方法 Extension Methods server management interface protocol ipmi...
  11. 物联网技术体系(一)
  12. AtCoder - ABC 160 - DE(贪心)
  13. java多文件代码在线运行网站
  14. js android 复制粘贴板,js实现复制到粘贴板方法
  15. 从0开始的appium+Android+python自动抢红包世界生活
  16. supermap mysql_SuperMap iMobile for Android定位实现
  17. laragon安装postgreSQL
  18. 被动信息收集:使用OSINT框架进行信息收集
  19. 解决问题——无法连接到更新服务器。我们将稍后再试,你也可以立即进行检查。如果问题仍然存在,请确保你已连接到Internet
  20. 网络存储技术Windows server 2012 (项目五 存储服务器的数据快照计划与故障还原)

热门文章

  1. 语音识别论文.doc
  2. 鼠标hover表格头部信息出现闪烁
  3. 【深度优先搜索】计蒜客:引爆炸弹
  4. ★Python爬虫 ※ 入门详解
  5. php 上传没生成文件,php-上传时无法创建临时文件
  6. cmd批量修改文件名 增加文字_Windows批处理脚本:以批量修改文件名为例
  7. visual studio 最新稳定版本_速来围观!Android Studio 4.0 稳定版发布了
  8. c3p0存在严重bug “APPARENT DEADLOCK“的问题
  9. weex android 滑动事件,【报Bug】weex编译模式下slider组件 @scroll 事件, 滑块左右滑动, @scroll 回调的值始终是负数, 判断不了左右动作...
  10. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(热身赛)