简要说明  

  Toast是一种没有交点,显示时间有限,不能与用户进行交互,用于显示提示信息的显示机制,我们可以把它叫做提示框。Toast不依赖 于Activity,也就是说,没有Activity,依然可以使用Toast。
   Android的四大组件:Activity, Service, Broadcast Receiver, Contet
Provider,都是继承Context的(Context,现在大家称之为上下文,之前又被翻译为句柄),包括整个Application也是继承于Context的。Toast就是依赖于应用程序Application的Context。

项目结构

aaarticlea/png;base64,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" alt="" />

代码实现

  • MainActivity.java:
package com.example.linux.customtoasttest;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast; /**
* writer: 胡红翔
* function: 自定义toast,以及toast的简单使用
*/
public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} // toast:位置的改变
public void toast1(View view) {
Toast toast = Toast.makeText(MainActivity.this, "toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM | Gravity.LEFT, 0, 0);
toast.show();
} //toast:自定义Toast
public void customToast(View view) {
LayoutInflater inflater = getLayoutInflater();
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.toast_layout_root);
View layout = inflater.inflate(R.layout.toast_layout, viewGroup); TextView text = (TextView) layout.findViewById(R.id.textView);
text.setText("This is a custom toast"); Toast toast = new Toast(MainActivity.this);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout); // 自定义View
toast.show();
}
}
  • activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.linux.customtoasttest.MainActivity"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" /> <Button
android:text="ToastPosition"
android:onClick="toast1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <Button
android:text="CustomToast"
android:onClick="customToast"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
  • toast_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#DAAA"
android:orientation="horizontal"
android:padding="8dp"> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:src="@mipmap/ic_launcher" /> <TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF" />
</LinearLayout>

实现原理

  • toast的makeText方法:得到一些信息,生成一个View
Toast result = new Toast(context);
LayoutInflater inflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
tv.setText(text); result.mNextView = v;
result.mDuration = duration; return result;
  • toast的show方法:这个比较难,表示没怎么看懂,后续再做补充。大概的是add(view)让上述view显示,开启了一个线程不断轮询(估计是duration),启动了一个通知服务。
// 窗口管理类
mWM = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
......
mWM.addView(mView, mParams);
// 绑定事件
trySendAccessibilityEvent();

友情链接

android基础---->Toast的使用的更多相关文章

  1. Android基础工具类重构系列一Toast

    前言: 一直在考虑写一下Android实际项目中的一些总结,翻看CSDN博客,上一篇已经是一年多曾经. 本系列定位Android基础工具类重构.旨在记录实际项目中经经常使用到的一些工具类,比方Toas ...

  2. <Android 基础(十六)> Toast

    介绍 A toast provides simple feedback about an operation in a small popup. It only fills the amount of ...

  3. 基础4 Android基础

    基础4 Android基础 1. Activity与Fragment的生命周期. Activity生命周期 打开应用 onCreate()->onStart()->onResume 按BA ...

  4. 【Android基础】listview控件的使用(3)------Map与SimpleAdapter组成的多显示条目的Listview

    前面介绍的两种listview的使用都是最基础的,所以有很大的局限性,比如只能在一个item(即每一行的条目)中显示一个文本信息,这一篇我将介绍Map与SimpleAdapter组成的多显示条目的Li ...

  5. Android开发Toast Notifications

    Android开发Toast Notifications 关键类 Toast toast通知是一种在窗口表面弹出的消息.它只占用信息显示所需的空间,用户当前的activity仍保持可见并可交互.该通知 ...

  6. 安卓四大组件之Sevice组件的简单使用 --Android基础

    1.本例实现了简单的Service(服务)的创建.启动和停止,点击“启动SERVICE”页面会显示“服务被创建”,接着是“服务被启动”.点击“停止SERVICE”页面提示“服务被停止”.太过基础,直接 ...

  7. android基础---->AIDL服务的使用

    AIDL和其他的IDL类似,它允许你定义程序接口,以便客户端与服务器端通过IPC机制交互.在android上面,一个进程一般不能访问另外进程的内存.因此,Android平台将这些跨进程访问的对象分解成 ...

  8. Android基础新手教程——3.1 基于监听的事件处理机制

    Android基础新手教程--3.1.1 基于监听的事件处理机制 标签(空格分隔): Android基础新手教程 本节引言: 第二章我们学习的是Android的UI控件,我们能够利用这些控件构成一个精 ...

  9. Android基础新手教程——4.1.2 Activity初窥门径

    Android基础新手教程--4.1.2 Activity初窥门径 标签(空格分隔): Android基础新手教程 本节引言: 上一节中我们对Activity一些主要的概念进行了了解,什么是Activ ...

随机推荐

  1. DT6.0开发之-调用信息评论

    今天在做destoon6.0产品内页开发时候,用到了调取当前信息评论,所以就顺便做下笔记. 调用当前信息的评论代码: <!--{tag("table=destoot_comment&a ...

  2. 绑定事件 .on("click",function(){})和.click(function(){})

    1.$(element).click(function(){ }) 2.$(element).on("click",function(){ }) 在一般的情况之下第1种和第2种没什 ...

  3. Python中如何使用线程池和进程池?

    进程池的使用 为什么要有进程池?进程池的概念. 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务. 那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程 ...

  4. 学习Spring-Data-Jpa(十七)---对Web模块的支持

    Spring-Data还提供了Web模块的支持,这要求Web组件Spring-MVC的jar包位于classpath下.通常通过使用@EnableSpringDataWebSupport注解来启用继承 ...

  5. SIGAI机器学习第二十四集 聚类算法1

    讲授聚类算法的基本概念,算法的分类,层次聚类,K均值算法,EM算法,DBSCAN算法,OPTICS算法,mean shift算法,谱聚类算法,实际应用. 大纲: 聚类问题简介聚类算法的分类层次聚类算法 ...

  6. Oracle iops测试

    DECLARE  lat  INTEGER;  iops INTEGER;  mbps INTEGER;BEGIN  DBMS_RESOURCE_MANAGER.CALIBRATE_IO(4, 10, ...

  7. 持续集成学习7 jenkins自动化代码构建

    一.整体功能 1.触发上下游构建 2.我们在触发一个job的时候顺便丢一些参数过去,这些参数有可能是我这次编译过程中产生的一些地址,版本号或动态的一些东西丢到下游作为下游的构建参数 3.不同种类的视图

  8. Xamarin.IOS/Mac开发中遇到的问题

    虚拟机中安装的mac系统无法识别iphone 今天在 Xamarin.iOS 应用的免费预配 时,进行到 5.插入要在其中部署应用的 iOS 设备. 在第8选择iphone设备时,发现iphone并没 ...

  9. centos 较新版本kernel安装方法

    有时因为系统内核的bug 我们必须要安装新版本的kernel 来解决问题,有几种方法 源码编译 使用编译好的包 使用包的方式比较方便,同时一些依赖的问题可以自动帮助我们处理 添加yum 源 rpm - ...

  10. C# 读取Excel 单元格是日期格式

    原文地址:https://www.cnblogs.com/liu-xia/p/5230768.html DateTime.FromOADate(double.Parse(range.Value2.To ...