Android中的Toast是很常見的一個消息提示框,但是默認的消息提示框就是一行純文本,所以我們可以為它設置一些其他的諸如是帶上圖片的消息提示。
實現這個很簡單:
就是定義一個Layout視圖,然後設置Toast顯示自定義的View。
在這裡,就是設置瞭一個LinearLayout容器,然後給這個容器添加圖片,添加文字信息。然後把這個容器設置給Toast對象,讓其顯示出來。
首先創建一個Android項目,然後我們編輯下main.xml文件:
這裡定義瞭兩個按鈕,一個是默認的Toast消息提示,另外一個是顯示帶圖片的信息提示。
接下來,我們就可以編輯主界面的java代碼瞭:ToastTest.java
import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class ToastTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button simple = (Button) findViewById(R.id.simple); // 為按鈕的單擊事件綁定事件監聽器 simple.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 創建一個Toast提示信息 Toast toast = Toast.makeText(ToastTest.this , "簡單的提示信息" // 設置該Toast提示信息的持續時間 , Toast.LENGTH_SHORT); toast.show(); } }); Button bn = (Button) findViewById(R.id.bn); // 為按鈕的單擊事件綁定事件監聽器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 創建一個Toast提示信息 Toast toast = new Toast(ToastTest.this); // 設置Toast的顯示位置 toast.setGravity(Gravity.CENTER, 0, 0); // 創建一個ImageView ImageView image = new ImageView(ToastTest.this); image.setImageResource(R.drawable.tools); // 創建一個LinearLayout容器 LinearLayout ll = new LinearLayout(ToastTest.this); // 向LinearLayout中添加圖片、原有的View ll.addView(image); // 創建一個ImageView TextView textView = new TextView(ToastTest.this); textView.setText("帶圖片的提示信"); // 設置文本框內字體的大小和顏色 textView.setTextSize(30); textView.setTextColor(Color.MAGENTA); ll.addView(textView); // 設置Toast顯示自定義View toast.setView(ll); // 設置Toast的顯示時間 toast.setDuration(Toast.LENGTH_LONG); toast.show(); } }); } }
我們可以得到下邊的效果圖: