[Android常用控件]Toast的幾種效果實現

Android中的Toast是一種簡易的消息提示框,toast提示框不能被用戶點擊,toast會根據用戶設置的顯示時間後自動消失。

 

一.顯示默認的Toast

 

1

實現代碼:

 

1

Toast.makeText(getApplicationContext(), "顯示默認的Toast", Toast.LENGTH_LONG).show();

 

 

有兩種方法來創建默認的Toast,下面我們來都看一下:

 

1.顯示resource中的資源

 

1

Toast.makeText(Context context, int resId, int duration).show();

參數: context是toast顯示在哪個上下文,通常是當前Activity;resId指顯示內容引用Resouce那條數據,就是從R類中去指定顯示的消息內容;duration指定顯示時間,            Toast默認有LENGTH_SHORT和LENGTH_LONG兩常量,分別表示顯示時間的長短;

 

2.顯示自定義的內容

 

1

Toast.makeText(Context context, CharSequence text, int duration).show();

參數: context和duration與第一個方法相同,參數text可以自己寫消息內容;

 

二.顯示帶圖片的Toast 

 

2

 

 

實現代碼:

 

1

Toast toast = Toast.makeText(getApplicationContext(), "顯示帶圖片的Toast", Toast.LENGTH_LONG);

2

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

3

LinearLayout toastView = (LinearLayout) toast.getView();

4

ImageView imageCodeProject = new ImageView(getApplicationContext());

5

imageCodeProject.setImageResource(R.drawable.wirelessqa);

6

toastView.addView(imageCodeProject, 0);

7

toast.show();

三.顯示自定義的Toast

 

3

實現代碼:

 

01

LayoutInflater inflater = getLayoutInflater();

02

 

03

 View layout = inflater.inflate(R.layout.define, (ViewGroup) findViewById(R.id.define));

04

 

05

TextView title = (TextView) layout.findViewById(R.id.define_title);

06

title.setText("這個是自定義的哦");

07

ImageView img = (ImageView) layout.findViewById(R.id.define_img);

08

img.setImageResource(R.drawable.wirelessqa);

09

TextView text = (TextView) layout.findViewById(R.id.define_text);

10

text.setText("www.wirelessqa.com");

11

Toast toast = new Toast(getApplicationContext());

12

toast.setGravity(Gravity.LEFT | Gravity.CENTER, 0, 0);

13

toast.setDuration(Toast.LENGTH_LONG);

14

// 替換掉原有的ToastView

15

toast.setView(layout);

16

 toast.show();

 四.顯示其它線程的Toast

 

4

 

 

實現代碼:

 

01

displayThread.setOnClickListener(new OnClickListener() {

02

 

03

         @Override

04

 

05

         public void onClick(View v) {

06

 

07

             new Thread(new Runnable() {

08

 

09

                 @Override

10

 

11

                 public void run() {

12

 

13

                     otherThreadToast();

14

 

15

                 }

16

 

17

             }).start();

18

 

19

         }

20

 

21

     });

22

 

23

 }

24

 

25

 private void otherThreadToast() {

26

 

27

     handler.post(new Runnable() {

28

 

29

         @Override

30

 

31

         public void run() {

32

 

33

             Toast.makeText(getApplicationContext(), "這個是其它線程的Toast喲", Toast.LENGTH_LONG).show();

34

 

35

         }

36

 

37

     });

38

 

39

 }

 五.顯示自定義的位置

5

 

實現代碼:

 

1

Toast toast = Toast.makeText(getApplicationContext(), "自定義Toast顯示位置(上)", Toast.LENGTH_LONG);

2

 

3

 toast.setGravity(Gravity.TOP, 0, 0);

4

 

5

toast.show();

 

 

兩個方法可以設置顯示位置:

 

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

 

方法二:setMargin(float horizontalMargin, float verticalMargin)

 

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

 

1

//設置Toast顯示位置(起點位置,水平向右位移,垂直向下位移) toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 200);

2

//Toast顯示位置,以橫向和縱向的百分比計算,參數均為float類型(水平位移正右負左,豎直位移正上負下)

3

toast.setMargin(-0.5f, 0f);

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *