1. 程式人生 > >訊息模式Toast.makeText的幾種常見用法

訊息模式Toast.makeText的幾種常見用法

轉載自:http://daikainan.iteye.com/blog/1405575

Toast 是一個 View 檢視,快速的為使用者顯示少量的資訊。 Toast 在應用程式上浮動顯示資訊給使用者,它永遠不會獲得焦點,不影響使用者的輸入等操作,主要用於 一些幫助 / 提示。

Toast 最常見的建立方式是使用靜態方法 Toast.makeText

我使用的是 SDK 2.2

1. 預設的顯示方式


java程式碼

/*
 * 第一個引數:當前上下午的環境。可用getApplicationContext()或this
 * 第二個引數:要顯示的字串
 * 第三個引數:顯示時間的長短。Toast有預設的兩個LENGTH_SHORT(短)和LENGTH_LONG(長),也可以使用毫秒2000ms
 * */
Toast.makeText(MainActivity.this,"zheyao",Toast.LENGTH_SHORT).show();
2.自定義顯示位置

java程式碼

Toast toast=Toast.makeText(getApplicationContext(), "自定義顯示位置的Toast", Toast.LENGTH_SHORT); 
//第一個引數:設定toast在螢幕中顯示的位置。我現在的設定是居中靠頂 
//第二個引數:相對於第一個引數設定toast位置的橫向X軸的偏移量,正數向右偏移,負數向左偏移 
//第三個引數:同的第二個引數道理一樣 
//如果你設定的偏移量超過了螢幕的範圍,toast將在螢幕內靠近超出的那個邊界顯示 
toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100); 
//螢幕居中顯示,X軸和Y軸偏移量都是0 
//toast.setGravity(Gravity.CENTER, 0, 0); 
toast.show();
3.帶圖片的



java程式碼

Toast toast=Toast.makeText(getApplicationContext(), "顯示帶圖片的toast", 3000); 
toast.setGravity(Gravity.CENTER, 0, 0); 
//建立圖片檢視物件 
ImageView imageView= new ImageView(getApplicationContext()); 
//設定圖片 
imageView.setImageResource(R.drawable.ic_launcher); 
//獲得toast的佈局 
LinearLayout toastView = (LinearLayout) toast.getView(); 
//設定此佈局為橫向的 
toastView.setOrientation(LinearLayout.HORIZONTAL); 
//將ImageView在加入到此佈局中的第一個位置 
toastView.addView(imageView, 0); 
toast.show();

4.自定義顯示方式


java程式碼

//Inflater意思是充氣 
//LayoutInflater這個類用來例項化XML檔案到其相應的檢視物件的佈局 
LayoutInflater inflater = getLayoutInflater(); 
//通過制定XML檔案及佈局ID來填充一個檢視物件 
View layout = inflater.inflate(R.layout.custom2,(ViewGroup)findViewById(R.id.llToast)); 

ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast); 
//設定佈局中圖片檢視中圖片 
image.setImageResource(R.drawable.ic_launcher); 

TextView title = (TextView) layout.findViewById(R.id.tvTitleToast); 
//設定標題 
title.setText("標題欄"); 

TextView text = (TextView) layout.findViewById(R.id.tvTextToast); 
//設定內容 
text.setText("完全自定義Toast"); 

Toast toast= new Toast(getApplicationContext()); 
toast.setGravity(Gravity.CENTER , 0, 0); 
toast.setDuration(Toast.LENGTH_LONG); 
toast.setView(layout); 
toast.show();

5.其他執行緒通過Handlerd 呼叫


java程式碼

//呼叫方法1 
//Thread th=new Thread(this); 
//th.start(); 
//呼叫方法2 
handler.post(new Runnable() { 
@Override 
public void run() { 
showToast(); 
} 
});
程式碼
 public void showToast(){ 
 Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他執行緒中呼叫顯示", Toast.LENGTH_SHORT); 
 toast.show(); 
 } 
程式碼
Handler handler=new Handler(){ 
@Override 
public void handleMessage(Message msg) { 
int what=msg.what; 
switch (what) { 
case 1: 
showToast(); 
break; 
default: 
break; 
} 

super.handleMessage(msg); 
} 
};
程式碼
@Override 
 public void run() { 
 handler.sendEmptyMessage(1); 
}