Toast是Android中一種提供給用戶簡短信息的視圖,該視圖已浮於應用程序之上的形式呈現給用戶。因為它並不獲得焦點,即使用戶正在輸入什麼也不會受到影響。它的目標是盡可能已不顯眼的方式,使用戶看到你提供的信息。顯示的時間是有限制的,過一段時間後會自動消失,不過Toast本身可以控制顯示時間的長短。
二.Toast的常用方法
int
getDuration()
返回Toast視圖顯示持續的時間.
int
getGravity()
取得提示信息在屏幕上顯示的位置.
float
getHorizontalMargin()
返回橫向欄外空白
float
getVerticalMargin()
返回縱向欄外空白.
View
getView()
返回 View 對象.
int
getXOffset()
返回相對於參照位置的橫向偏移像素量。
int
getYOffset()
返回相對於參照位置的縱向偏移像素量
static Toast
makeText(Context context, int resId, int duration)
生成一個從資源中取得的包含文本視圖的標准 Toast 對象。
context 使用的上下文。通常是你的 Application 或 Activity 對象
resId 要使用的字符串資源ID,可以是已格式化文本。
duration 該信息的存續期間。值為 LENGTH_SHORT 或 LENGTH_LONG
static Toast
makeText(Context context, CharSequence text, int duration)
生成一個包含文本視圖的標准 Toast 對象.
void
setDuration(int duration)
設置Toast視圖顯示持續的時間,LENGTH_LONG表示持續時間較長,LENGTH_SHORT表示持續時間較短
void
setGravity(int gravity, int xOffset, int yOffset)
設置提示信息在屏幕上的顯示位置. (自定義Toast的顯示位置,例如toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0)可以把Toast定位在左上角。Toast提示的位置xOffset:大於0向右移,小於0向左移)
void
setMargin(float horizontalMargin, float verticalMargin)
設置視圖的欄外空白.
horizontalMargin 容器的邊緣與提示信息的橫向空白(與容器寬度的比)
verticalMargin 容器的邊緣與提示信息的縱向空白(與容器高度的比)。
void
setText(int resId)
更新之前通過 makeText() 方法生成的 Toast 對象的文本內容. resId 為 Toast 指定的新的字符串資源ID。
void
setText(CharSequence s)
更新之前通過 makeText() 方法生成的 Toast 對象的文本內容.
s 為 Toast 指定的新的文本
void
setView(View view)
設置要顯示的 View. 注意這個方法可以顯示自定義的toast視圖,可以包含圖像,文字等等。是比較常用的方法
void
show()
按照指定的存續期間顯示提示信息
三.Toast的不同顯示樣式
效果圖(有五種不同的Toast顯示樣式):
650) this.width=650;" height=239>
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"
- >
- <Button
- android:id="@+id/btn_1"
- android:text="@string/btn1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <Button
- android:id="@+id/btn_2"
- android:text="@string/btn2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <Button
- android:id="@+id/btn_3"
- android:text="@string/btn3"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <Button
- android:id="@+id/btn_4"
- android:text="@string/btn4"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <Button
- android:id="@+id/btn_5"
- android:text="@string/btn5"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
toast.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="5dp"
- android:background="#708090"
- >
- <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="帶圖片文字的Toast"
- />
- </LinearLayout>
strings.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello Toast!</string>
- <string name="app_name">ToastDemo</string>
- <string name="btn1">系統默認的Toast</string>
- <string name="btn2">自定義位置的Toast</string>
- <string name="btn3">帶只有圖片的Toast</string>
- <string name="btn4">有圖有文字的Toast</string>
- <string name="btn5">自定義布局的Toast</string>
- </resources>
ToastDemoActivity.java
- package com.android.toast.activity;
- import android.app.Activity;
- import android.content.Context;
- import android.os.Bundle;
- import android.view.Gravity;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.Toast;
- public class ToastDemoActivity extends Activity {
- private Button btn_1, btn_2, btn_3, btn_4, btn_5;
- private Toast toast = null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_1 = (Button) findViewById(R.id.btn_1);
- btn_2 = (Button) findViewById(R.id.btn_2);
- btn_3 = (Button) findViewById(R.id.btn_3);
- btn_4 = (Button) findViewById(R.id.btn_4);
- btn_5 = (Button) findViewById(R.id.btn_5);
- btn_1.setOnClickListener(new ButtonClick());
- btn_2.setOnClickListener(new ButtonClick());
- btn_3.setOnClickListener(new ButtonClick());
- btn_4.setOnClickListener(new ButtonClick());
- btn_5.setOnClickListener(new ButtonClick());
- }
- class ButtonClick implements OnClickListener{
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- switch (v.getId()) {
- case R.id.btn_1:
- toast.makeText(ToastDemoActivity.this, "默認的Toast顯示", Toast.LENGTH_LONG).show();
- break;
- case R.id.btn_2:
- // 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.btn_3:
- toast = Toast.makeText(getApplicationContext(), "只有圖片的Toast顯示",
- Toast.LENGTH_LONG);
- ImageView img = new ImageView(ToastDemoActivity.this);
- img.setImageResource(R.drawable.android);
- toast.setView(img);
- toast.show();
- break;
- case R.id.btn_4:
- toast = Toast.makeText(getApplicationContext(), "有圖有字的Toast", Toast.LENGTH_LONG);
- LinearLayout layout = (LinearLayout)toast.getView();
- ImageView img1 = new ImageView(getApplicationContext());
- img1.setImageResource(R.drawable.android);
- layout.addView(img1,0);
- toast.show();
- break;
- case R.id.btn_5:
- //將一個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.android);
- toast.setView(view);
- toast.show();
- break;
- default:
- break;
- }
- }
- }
- }