Android学习笔记之Toast详解

时间:2023-03-09 04:20:00
Android学习笔记之Toast详解

1. 贴一段Android API-Toast

Toast

public class Toast 
extends Object

java.lang.Object

android.widget.Toast

A toast is a view containing a quick little message for the user. The
toast class helps you create and show those.

When the view is shown to the user, appears as a floating view over the
application. It will never receive focus. The user will probably be in the middle
of typing something else. The idea is to be as unobtrusive as possible, while
still showing the user the information you want them to see. Two examples are
the volume control, and the brief message saying that your settings have been
saved.

The easiest way to use this class is to call one of the static methods
that constructs everything you need and returns a new Toast object.

Constants

int  LENGTH_LONG

Show the view or text notification for a long period of
time.

int  LENGTH_SHORT

Show the view or text notification for a short period
of time.

Public constructors

Toast(Context context)

Construct an empty Toast object.

 

Public methods

void cancel()

Close the view if it's showing, or don't show it if it
isn't showing yet.

int getDuration()

Return the duration.

int getGravity()

Get the location at which the notification should
appear on the screen.

float getHorizontalMargin()

Return the horizontal margin.

float getVerticalMargin()

Return the vertical margin.

View getView()

Return the view.

int  getXOffset()

Return the X offset in pixels to apply to the gravity's
location.

int  getYOffset()

Return the Y offset in pixels to apply to the gravity's
location.

staticToast makeText(Context context, int resId, int
duration)

Make a standard toast that just contains a text view
with the text from a resource.

staticToast makeText(Context context, CharSequence text, int duration)

Make a standard toast that just contains a text view.

void setDuration(int duration)

Set how long to show the view for.

void setGravity(int gravity, int xOffset, int
yOffset)

Set the location at which the notification should
appear on the screen.

void setMargin(float horizontalMargin, float
verticalMargin)

Set the margins of the view.

void setText(int resId)

Update the text in a Toast that was previously created
using one of the makeText() methods.

void setText(CharSequence s)

Update the text in a Toast that was previously created
using one of the makeText() methods.

void setView(View view)

Set the view to show.

void show()

Show the view for the specified duration.

2.中文简介及用法举例

Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。下面用一个实例来看看如何使用Toast。

2.1 默认效果

Android学习笔记之Toast详解

代码

Toast.makeText(getApplicationContext(), "默认Toast样式",   Toast.LENGTH_SHORT).show();

2.2 自定义显示位置效果

Android学习笔记之Toast详解

代码

toast = Toast.makeText(getApplicationContext(),
"自定义位置Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

2.3 带图片效果

Android学习笔记之Toast详解

代码

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();

2.4 完全自定义效果

Android学习笔记之Toast详解

代码

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();

2.5 其他线程

Android学习笔记之Toast详解

代码

new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();