Toast是我們常常使用的物件,通常用來顯示一些浮動訊息,
不過如果Toast這個物件覺得太單調的話,其實是可以自己做設計的,
可以在裡面加一些額外的控制像,例如ImageView等等,這樣Toast使用的彈性就更高了。
首先我們要先res/layout中建立一個Toast UI的 xml 檔,名為 toast_layout.xml,
並在這個xml檔裡面加入一個TextView和ImageView。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#FFFF99"
>
<ImageView android:src="@drawable/pic_ithome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#0000FF"
/>
</LinearLayout>
接下來我們要根據Toast UI的ID名稱來擴充Toast,如上例,我們的ID名稱就是「toast_layout」
我們要使用inflater來擴充Toast,並找到View中的控制像,改變TextView的內容,再將Toast顯示出來
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layout));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("歡迎參加Ithome鐵人賽!");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); //顯示位置
toast.setDuration(Toast.LENGTH_LONG); //顯示時間長短
toast.setView(layout);
toast.show();
這樣就完成自訂的Toast囉!!!