Toast是Android中一种提供给用户简短信息的视图,该视图已浮于应用程序之上的形式呈现给用户。因为它并不获得焦点,即使用户正在输入什么也不会受到影响。它的目标是尽可能以不显眼的方式,使用户看到你提供的信息。显示的时间是有限制的,过一段时间后会自动消失,不过Toast本身可以控制显示时间的长短;

Toast的不同显示样式:

代码如下:

activity_main.xml

<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" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button2" />

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button3" />

    <Button
        android:id="@+id/button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button4" />

    <Button
        android:id="@+id/button5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button5" />

    <Button
        android:id="@+id/button6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button6" />

</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Toast</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="button1">系统默认的Toast</string>
    <string name="button2">自定义位置的Toast</string>
    <string name="button3">只显示图片的Toast</string>
    <string name="button4">显示图片和文字的Toast</string>
    <string name="button5">自定义布局的Toast</string>
    <string name="button6">其他线程的Toast</string>
    <string name="text_view1">自定义布局的Toast</string>
    <string name="text_view2">自定义布局:</string>

</resources>

toast.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#708090"
    android:orientation="vertical"
    android:padding="5dp" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_view2" />

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_view1" />

</LinearLayout>

MainActivity.java

package com.xiaozhang.wifi;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

    private Toast toast = null;
    Handler handler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.button1).setOnClickListener(new ButtonClick());
        findViewById(R.id.button2).setOnClickListener(new ButtonClick());
        findViewById(R.id.button3).setOnClickListener(new ButtonClick());
        findViewById(R.id.button4).setOnClickListener(new ButtonClick());
        findViewById(R.id.button5).setOnClickListener(new ButtonClick());
        findViewById(R.id.button6).setOnClickListener(new ButtonClick());

    }

    public void showToast() {
        handler.post(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), "其他线程的Toast",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }

    class ButtonClick implements OnClickListener {

        @SuppressLint("InflateParams")
        @SuppressWarnings("static-access")
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.button1:
                toast.makeText(MainActivity.this, "默认的Toast", Toast.LENGTH_LONG)
                        .show();
                break;
            case R.id.button2:
                // getApplicationContext()得到程序当前的默认Context
                toast = Toast.makeText(getApplicationContext(), "自定义位置的Toast",
                        Toast.LENGTH_LONG);
                // 设置Toast的位置
                toast.setGravity(Gravity.CENTER, toast.getXOffset() / 2,
                        toast.getYOffset() / 2);
                toast.show();
                break;
            case R.id.button3:
                toast = Toast.makeText(MainActivity.this, "只显示图片的Toast",
                        Toast.LENGTH_LONG);
                ImageView img = new ImageView(MainActivity.this);
                img.setImageResource(R.drawable.right);
                toast.setView(img);
                toast.show();
                break;
            case R.id.button4:
                toast = Toast.makeText(getApplicationContext(), "显示图片和文字的Toast",
                        Toast.LENGTH_LONG);
                LinearLayout layout = (LinearLayout) toast.getView();
                ImageView img1 = new ImageView(getApplicationContext());
                img1.setImageResource(R.drawable.right);
                layout.addView(img1, 0);
                toast.show();
                break;
            case R.id.button5:
                // LayoutInflater作用是将layout的xml布局文件实例化为View类对象
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View view = inflater.inflate(R.layout.toast, null);

                Toast toast = new Toast(getApplicationContext());
                // 在view中查找ImageView控件
                ImageView image = (ImageView) view.findViewById(R.id.img);
                image.setImageResource(R.drawable.right);
                toast.setView(view);
                toast.show();
                break;
            case R.id.button6:
                new Thread(new Runnable() {
                    public void run() {
                        showToast();
                    }
                }).start();
                break;
            }
        }

    }
}

PS:记得添加图片:right.png

参考自:http://liangruijun.blog.51cto.com/3061169/638913

Android Toast简介的更多相关文章

  1. 【译】Android系统简介—— Activity

    续上一篇,继续介绍Android系统.上一篇: [译]Android系统简介 本文主要介绍构建Android应用的一些主要概念: Activity Activity是应用程序中一个单独的有UI的页面( ...

  2. Android插件简介

    /** * @actor Steffen.D * @time 2015.02.06 * @blog http://www.cnblogs.com/steffen */ Android插件简介 Andr ...

  3. Appium Android Toast控件

    Android Toast控件是Android系统级别的控件,不是App的控件,getPageSource是⽆法找到的. Toast介绍 1.背景 在安卓设备里面,使用各种手机应用程序的时候,需要先进 ...

  4. Android Toast cancel和show 不踩中不会知道的坑

    说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...

  5. Android Studio 简介及导入 jar 包和第三方开源库方[转]

    原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...

  6. Android Toast效果设置

    Android Toast效果设置 Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失.总 ...

  7. "浅谈Android"第一篇:Android系统简介

    近来,看了一本书,名字叫做<第一行代码>,是CSDN一名博主写的,一本Android入门级的书,比较适合新手.看了书之后,有感而发,想来进行Android开发已经有一年多了,但欠缺系统化的 ...

  8. Android Toast 封装,避免Toast消息覆盖,替换系统Toast最好用的封装

    Android Toast 封装,避免Toast消息覆盖,无阻塞,等强大功能   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  9. Android Toast效果

    Android Toast效果是一种提醒方式,在程序中使用一些短小的信息通知用户,过一会儿会自动消失,实现如下: FirstActivity.java package org.elvalad.acti ...

随机推荐

  1. 深入理解linux网络技术内幕读书笔记(九)--中断与网络驱动程序

    Table of Contents 1 接收到帧时通知驱动程序 1.1 轮询 1.2 中断 2 中断处理程序 3 抢占功能 4 下半部函数 4.1 内核2.4版本以后的下半部函数: 引入软IRQ 5 ...

  2. RequireJS进阶(二)

    这一篇来认识下打包工具的paths参数,在入门一中就介绍了require.config方法的paths参数.用来配置jquery模块的文件名(jQuery作为AMD模块时id为“jquery”,但文件 ...

  3. iOS获取设备唯一编号,就算删除app从新安装也不变的方法

    第三方开源代码 https://github.com/soffes/SAMKeychain 使用方法 //获取设备信息32 位字符串 -(NSString *)getDeviceString{ NSS ...

  4. [Falcor] Building Paths Programmatically

    model.setValue('genreList[0].titles[0].rating', 5) .then(function (value) { model.get('genreList[0.. ...

  5. javaScript模块化一

    1. Module模式的基本特性 A) 模块化 可重用   B) 封装了变量和function 和全局的namespace不接触 松耦合.   C) 只暴露可用public的方法 其他私有方法全部隐藏 ...

  6. Form( 表单) 组件

    本节课重点了解 EasyUI 中 Form(表单)组件的使用方法, 这个组件不依赖于任何组件.一. 加载方式表单组件只能在 JS 区域设置,首先定义一张表单.<form id="box ...

  7. MVC,jquery异步

    创建一个Ajax控制器 using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...

  8. 关于获得本机Mac Address的方法

    网络上有讲获得Mac address的方法有如下: 1. 发送ARP命令,利用返回的Mac Address缓冲区得到 2. 用NetworkInterface.GetAllNetworkInterfa ...

  9. redis cluster 集群搭建步骤和注意事项

    1.安装Ubuntu ,修改root的密码. sudo passwd  (apt-get update 更新系统) 2.安装 Gcc 和G++  sudo apt-get install build- ...

  10. 从Ueditor跨域上传,总结的一次跨域上传的爬坑经历

    项目内其中一个管理后台需要发布文章,需要一个富文本编辑器,经过一番选择后,最终选择了百度的Ueditor. 由于上传的文件是上传到另一台专门存放图片等静态资源的服务器上面的,所以就涉及到了跨域上传. ...