Android Toast小解

-柚子皮-發表於2014-05-24

簡介:Toast英文含義是吐司,在Android中,它就像烘烤機裡做好的吐司彈出來,並持續一小段時間後慢慢消失。

Toast也是一個容器,可以包含各種View,並承載著它們顯示。

Android中提供一種簡單的Toast訊息提示框機制,可以在使用者點選了某些按鈕後,提示使用者一些資訊,提示的資訊不能被使用者點選,Toast的提示資訊根據使用者設定的顯示時間後自動消失。Toast的提示資訊可以在除錯程式的時候方便的顯示某些想顯示的東西,或者給使用者提供友好的介面顯示效果。

有兩種方式去建立並且顯示Toast:

  1. Toast.makeText(Context context, int resId, int duration) 
    Toast.makeText(Context context, CharSequence text, int duration) 
    Context為上下文,通常為當前activity;resId是string字串的id,CharSequence為你要顯示的字串,duration為顯示的時間,可以選擇Toast.LENGTH_SHORT或Toast.LENGTH_LONG,也可自定義時間。 使用方法: 
    Toast.makeText(this, "this is string", Toast.LENGTH_SHORT).show();

  2. 自己建立Toast,並且設定檢視,即自定義 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Toast toast = new Toast(this);       
// 定義一個ImageView      
ImageView imageView = new ImageView(this);        
imageView.setImageResource(R.drawable.ic_launcher);       
// 定義一個Layout,這裡是Layout       
LinearLayout Layout = new LinearLayout(this);     
Layout.setOrientation(LinearLayout.HORIZONTAL);       
// 將ImageView放到Layout中        
Layout.addView(imageView);        
// 設定View     
toast.setView(Layout);        
//設定顯示時間      
toast.setDuration(20);        
toast.show();     

通過上面的程式碼就可以自己定義一個Toast了,我們還在其中顯示了圖片。

如何設定Toast顯示的位置

方法一:

setGravity(int gravity, int xOffset, int yOffset) 三個引數分別表示(起點位置,水平向右位移,垂直向下位移)

方法二:

setMargin(float horizontalMargin, float verticalMargin) 以橫向和縱向的百分比設定顯示位置,引數均為float型別(水平位移正右負左,豎直位移正上負下)

//預設的Gravity就是Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM


Toast toast = Toast.makeText(this, "set your gesture firstly", Toast.LENGTH_LONG); //toast提示
toast.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM, 0, 0); //先設定重心
toast.setMargin(0f, 0.1f) ; //設定相對重心位置
toast.show();


注意事項:

Toast中有一個public方法setText(),可以給toast設定resid或者string,該方式儘可以在我們的第一種方法中使用,第二種自定義toast的方式是不可以使用的,使用的話會丟擲異常。

原因是使用第一種方式建立,Toast會自己建立一個view,即textview,而我們使用這個setText實際是向這個TextView設定內容,而自定義的View不會有這個控制元件,因此會報錯。

//加設定位置
Toast toast = Toast.makeText(this, "set your gesture firstly", Toast.LENGTH_LONG); //toast提示//toast.setGravity(Gravity.BOTTOM, 20, 60); toast.show();


ref:http://blog.csdn.net/pipisorry/article/details/26837809

http://blog.isming.me/blog/2014/03/22/toast-use/

http://android.codemach.com/zai-android-zhong-shi-yong-toast-jin-xing-ti-shi.html



相關文章