android Toast大全(五种情形)建立属于你自己的Toast
原文地址: http://www.cnblogs.com/salam/archive/2010/11/10/1873654.html
Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。
1.默认效果
代码
Toast.makeText(getApplicationContext(), "默认Toast样式",
Toast.LENGTH_SHORT).show();
2.自定义显示位置效果
代码
toast = Toast.makeText(getApplicationContext(),
"自定义位置Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);//设置toast位子;
toast.show();
3.带图片效果
代码
toast = Toast.makeText(getApplicationContext(),
"带图片的Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageCodeProject = new ImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
//这种方法貌似用的少
toastView.addView(imageCodeProject, 0);
toast.show();
4.完全自定义效果
代码:
//使用 LayoutInflater 关联布局配置文件获取View.
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom,
(ViewGroup) findViewById(R.id.llToast));
//设置图片地址;
ImageView image = (ImageView) layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
//获取并设置title内容;
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
//获取并设置text内容;
TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
5.其他线程
代码
new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();
完整代码
1.Main,java
package com.wjq.toast;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity implements OnClickListener {
Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.btnSimpleToast).setOnClickListener(this);
findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(
this);
findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
findViewById(R.id.btnCustomToast).setOnClickListener(this);
findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);
}
public void showToast() {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "我来自其他线程!",
Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View v) {
Toast toast = null;
switch (v.getId()) {
case R.id.btnSimpleToast:
Toast.makeText(getApplicationContext(), "默认Toast样式",
Toast.LENGTH_SHORT).show();
break;
case R.id.btnSimpleToastWithCustomPosition:
toast = Toast.makeText(getApplicationContext(),
"自定义位置Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
break;
case R.id.btnSimpleToastWithImage:
toast = Toast.makeText(getApplicationContext(),
"带图片的Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageCodeProject = new ImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
toastView.addView(imageCodeProject, 0);
toast.show();
break;
case R.id.btnCustomToast:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom,
(ViewGroup) findViewById(R.id.llToast));
ImageView image = (ImageView) layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
break;
case R.id.btnRunToastFromOtherThread:
new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();
break;
}
}
}
2.main,xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="5dip" android:gravity="center">
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/btnSimpleToast"
android:text="默认"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="自定义显示位置"
android:id="@+id/btnSimpleToastWithCustomPosition"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/btnSimpleToastWithImage"
android:text="带图片"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="完全自定义"
android:id="@+id/btnCustomToast"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="其他线程"
android:id="@+id/btnRunToastFromOtherThread"></Button>
</LinearLayout>
3.custom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="vertical"
android:id="@+id/llToast" >
<TextView
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:textColor="#ffffffff"
android:layout_width="fill_parent"
android:gravity="center"
android:background="#bb000000"
android:id="@+id/tvTitleToast" />
<LinearLayout
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/llToastContent"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_marginBottom="1dip"
android:layout_width="wrap_content"
android:padding="15dip"
android:background="#44000000" >
<ImageView
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:id="@+id/tvImageToast" />
<TextView
android:layout_height="wrap_content"
android:paddingRight="10dip"
android:paddingLeft="10dip"
android:layout_width="wrap_content"
android:gravity="center"
android:textColor="#ff000000"
android:id="@+id/tvTextToast" />
</LinearLayout>
</LinearLayout>
相关推荐
### Android Toast 大全(五种情形) #### 一、概览 在Android开发中,`Toast`是一种轻量级的提示方式,主要用于快速显示简短的信息,如操作结果、临时提示等。它不会阻塞UI线程,也不需要用户进行任何交互即可...
Android 自定义 Toast 设定显示时间是指在 Android 应用程序中,自定义 Toast 的显示时间,而不是使用系统默认的 Toast.LENGTH_SHORT 或 Toast.LENGTH_LONG。本文将详细介绍如何使用 WindowManager 实现自定义 Toast...
本文档详细介绍了Toast的五种不同使用情形,包括基础用法、自定义位置、添加图片、自定义布局以及通过新线程显示Toast。 1. Toast基础用法 Toast的基础用法非常简单,主要涉及到两个方法:makeText()和show()。...
下面我们将详细讲解如何实现标题中提到的五种`Toast`情形。 1. **默认效果**: 默认的`Toast`样式是系统预设的,只需调用`makeText()`方法并传入上下文、显示文本和持续时间即可。如: ```java Toast.makeText...
实际上用户本意只是想关闭Notification,但是Toast的show方法中有调用INotificationManager这个类,而这个类在用户关闭消息通知权限的同时被禁用了,所以我们的吐司无法显示。 Toast.show() 效果图 自定义Toast...
在Android开发中,`Toast`是一种轻量级的提示方式,用于向用户显示短暂的信息,如操作结果或者简单的提示。通常,`Toast`会显示一个简单的文本消息,但默认样式可能无法满足所有设计需求。本篇文章将深入探讨如何在...
接下来,我们将会深入探讨`Toast`的使用方法,以及如何自定义`Toast`以满足更个性化的展示需求。 1. **基础使用** 创建一个基本的`Toast`非常简单,只需要以下几步: ```java Toast.makeText(context, "这是一条...
本文将详细介绍`Toast`的各种使用方法及其DEMO示例。 1. **创建和显示基本的`Toast`** 要创建一个`Toast`,首先需要通过`Toast.makeText()`方法初始化`Toast`对象,然后调用`show()`方法将其显示出来。基本语法...
这个“Android应用源码之五种效果的Toast.zip”文件包含了一个示例项目,展示了如何自定义`Toast`以实现不同的视觉效果。下面我们将详细探讨`Toast`的基本使用和如何进行自定义。 1. **`Toast`的基本用法** - 创建...
在Android开发中,Toast是一种轻量级的通知方式,它用于显示短暂的信息,通常用来提示用户某个操作的结果。系统默认的Toast显示时间有限,一般分为短时间和长时间两种模式,但有时开发者可能需要更灵活的控制Toast的...
在Android应用开发中,Toast是一种常用的轻量级提示方式,用于短暂显示消息,告知用户一些信息或者操作结果。然而,系统默认的Toast虽然方便,但其样式和功能相对固定,不能满足所有开发者的需求。在某些情况下,...
在Android开发中,Toast是一种轻量级的通知方式,它能够在屏幕中央或底部显示短暂的信息,然后自动消失。然而,原始的Toast有时无法满足开发者对于样式、持续时间或交互的需求,因此,自定义Toast就显得尤为重要。...
在Android开发中,Toast是一种常用的轻量级反馈机制,它能短暂地显示一条消息,用于提示用户一些简短的信息。标题“toast五种效果”暗示我们将探讨如何在Android应用中实现不同类型的Toast,包括默认样式、带有图片...
在Android开发中,Toast是一种轻量级的通知方式,它用于显示短暂的信息,通常用来提示用户某个操作的结果。然而,系统默认的Toast有时无法满足开发者的需求,例如样式、位置或者交互等方面的定制。在这种情况下,...
在Android开发中,Toast是一种轻量级的通知方式,它能够在屏幕中央短暂地显示一行文本信息。然而,系统默认的Toast功能有限,仅提供简单的文本显示和预设的显示位置。当我们需要更复杂的交互或者定制化设计时,就...
在Android开发中,Toast是一种轻量级的通知方式,它用于显示短暂的信息,不会阻断用户当前的操作。默认的Toast在屏幕中央短暂显示文本信息,但有时开发者可能需要更灵活的展示方式,比如改变位置或样式,这就涉及到...
在Android开发中,`Toast`是一个非常常用的组件,它用于在界面上显示短暂的通知信息,不会影响用户与屏幕上的其他元素交互。`Toast`对象的使用主要包括基本用法和自定义实现,下面将详细讲解这两个方面。 ### 基本...
在给定的“五种不同的Toast”主题中,我们可以探讨不同类型的`Toast`展示方式及其用法。 1. **基本的Toast** 最基础的`Toast`创建方法是通过`Toast.makeText()`函数。你需要传入上下文(Context)、显示的消息...
Android 演示简单toast和带图片toast的实现方法,这些toast在平时的Android应用开发中使用频繁,本源码演示了两种最实用toast的用法,一种是不带图片,另一种是带图片: // 简单的toast,不带图片的实现方法: ...