iT邦幫忙

DAY 24
0

菜逼八的 Android 開發 30天系列 第 24

【菜逼八學Android】自訂的快顯訊息─Toast

  • 分享至 

  • xImage
  •  

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囉!!!


上一篇
【菜逼八學Android】ActionBar(3)
下一篇
【菜逼八學Android】Search UI (1)
系列文
菜逼八的 Android 開發 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言