Android Toast五种用法(转)

Android中提供一种简单的Toast消息提示框机制,可以在用户点击了某些按钮后,提示用户一些信息,提示的信息不能被用户点击,Toast的提示信息根据用户设置的显示时间后自动消失。Toast的提示信息可以在调试程序的时候方便的显示某些想显示的东西。

一、创建Toast:

用法一:

makeText(Context context, int resId, int duration) 

参数:context是toast显示在哪个上下文,通常是当前Activity;resId指显示内容引用Resouce那条数据,就是从R类中去指定显示的消息内容;duration指定显示时间,Toast默认有LENGTH_SHORT和LENGTH_LONG两常量,分别表示短时间显示和长时间显示

1 Toast.makeText(getApplicationContext(), "默认Toast样式",
2      Toast.LENGTH_SHORT).show();

用法二:

makeText(Context context, CharSequence text, int duration) 

参数:context和duration与第一个方法相同,参数text可以自己写消息内容。

用上面任意方法创建Toast对象之后调用方法show()即可显示。

1 Toast.makeText(getApplicationContext(), R.String.xxx,
2       Toast.LENGTH_SHORT).show();

二、设置Toast显示位置:

方法一:

setGravity(int gravity, int xOffset, int yOffset)

三个参数分别表示(起点位置,水平向右位移,垂直向下位移) 

Toast toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 200);

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

 以横向和纵向的百分比设置显示位置,参数均为float类型(水平位移正右负左,竖直位移正上负下)

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

三、显示一个带图片的Toast效果:

 1 toast = Toast.makeText(getApplicationContext(),
 2      "带图片的Toast", Toast.LENGTH_LONG);
 3 toast.setGravity(Gravity.CENTER, 0, 0);
 4 //获得view对象
 5 LinearLayout toastView = (LinearLayout) toast.getView();
 6 实例化一个image对象
 7 ImageView imageCodeProject = new ImageView(getApplicationContext());
 8 imageCodeProject.setImageResource(R.drawable.icon);
 9 //添加到view对象
10 toastView.addView(imageCodeProject, 0);
11 //显示
12 toast.show();

四、完全自定义效果:

 1     LayoutInflater inflater = getLayoutInflater();
 2     View layout = inflater.inflate(R.layout.custom,
 3     (ViewGroup) findViewById(R.id.llToast));
 4     ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast);
 5     image.setImageResource(R.drawable.icon);
 6     TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
 7     title.setText("Attention");
 8     TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
 9     text.setText("完全自定义Toast");
10     toast = new Toast(getApplicationContext());
11     toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
12     toast.setDuration(Toast.LENGTH_LONG);
13     toast.setView(layout);
14     toast.show();

五、其他线程:

1 new Thread(new Runnable() {
2     public void run() {
3          showToast();
4     }
5 }).start();

六、完整代码:

1.   main.java

 1 package com.wjq.toast;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.os.Handler;
 6 import android.view.Gravity;
 7 import android.view.LayoutInflater;
 8 import android.view.View;
 9 import android.view.ViewGroup;
10 import android.view.View.OnClickListener;
11 import android.widget.ImageView;
12 import android.widget.LinearLayout;
13 import android.widget.TextView;
14 import android.widget.Toast;
15 
16 public class Main extends Activity implements OnClickListener {
17     Handler handler = new Handler();
18 
19     @Override
20     public void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.main);
23 
24         findViewById(R.id.btnSimpleToast).setOnClickListener(this);
25         findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(
26                 this);
27         findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
28         findViewById(R.id.btnCustomToast).setOnClickListener(this);
29         findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);
30 
31     }
32 
33     public void showToast() {
34         handler.post(new Runnable() {
35 
36             @Override
37             public void run() {
38                 Toast.makeText(getApplicationContext(), "我来自其他线程!",
39                         Toast.LENGTH_SHORT).show();
40 
41             }
42         });
43     }
44 
45     @Override
46     public void onClick(View v) {
47         Toast toast = null;
48         switch (v.getId()) {
49             case R.id.btnSimpleToast:
50                 Toast.makeText(getApplicationContext(), "默认Toast样式",
51                         Toast.LENGTH_SHORT).show();
52                 break;
53             case R.id.btnSimpleToastWithCustomPosition:
54                 toast = Toast.makeText(getApplicationContext(),
55                         "自定义位置Toast", Toast.LENGTH_LONG);
56                 toast.setGravity(Gravity.CENTER, 0, 0);
57                 toast.show();
58                 break;
59             case R.id.btnSimpleToastWithImage:
60                 toast = Toast.makeText(getApplicationContext(),
61                         "带图片的Toast", Toast.LENGTH_LONG);
62                 toast.setGravity(Gravity.CENTER, 0, 0);
63                 LinearLayout toastView = (LinearLayout) toast.getView();
64                 ImageView imageCodeProject = new ImageView(getApplicationContext());
65                 imageCodeProject.setImageResource(R.drawable.icon);
66                 toastView.addView(imageCodeProject, 0);
67                 toast.show();
68                 break;
69             case R.id.btnCustomToast:
70                 LayoutInflater inflater = getLayoutInflater();
71                 View layout = inflater.inflate(R.layout.custom,
72                         (ViewGroup) findViewById(R.id.llToast));
73                 ImageView image = (ImageView) layout
74                         .findViewById(R.id.tvImageToast);
75                 image.setImageResource(R.drawable.icon);
76                 TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
77                 title.setText("Attention");
78                 TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
79                 text.setText("完全自定义Toast");
80                 toast = new Toast(getApplicationContext());
81                 toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
82                 toast.setDuration(Toast.LENGTH_LONG);
83                 toast.setView(layout);
84                 toast.show();
85                 break;
86             case R.id.btnRunToastFromOtherThread:
87                 new Thread(new Runnable() {
88                     public void run() {
89                         showToast();
90                     }
91                 }).start();
92                 break;
93 
94         }
95 
96     }
97 }
View Code

2.   main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3         android:orientation="vertical" android:layout_width="fill_parent"
 4         android:layout_height="fill_parent" android:padding="5dip" android:gravity="center">
 5 <Button android:layout_height="wrap_content"
 6         android:layout_width="fill_parent" android:id="@+id/btnSimpleToast"
 7         android:text="默认"></Button>
 8 <Button android:layout_height="wrap_content"
 9         android:layout_width="fill_parent" android:text="自定义显示位置"
10         android:id="@+id/btnSimpleToastWithCustomPosition"></Button>
11 <Button android:layout_height="wrap_content"
12         android:layout_width="fill_parent" android:id="@+id/btnSimpleToastWithImage"
13         android:text="带图片"></Button>
14 <Button android:layout_height="wrap_content"
15         android:layout_width="fill_parent" android:text="完全自定义"
16         android:id="@+id/btnCustomToast"></Button>
17 <Button android:layout_height="wrap_content"
18         android:layout_width="fill_parent" android:text="其他线程"
19         android:id="@+id/btnRunToastFromOtherThread"></Button>
20 
21 </LinearLayout>
View Code

3.   custom.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout
 3 xmlns:android="http://schemas.android.com/apk/res/android"
 4         android:layout_height="wrap_content" android:layout_width="wrap_content"
 5         android:background="#ffffffff" android:orientation="vertical"
 6         android:id="@+id/llToast" >
 7 <TextView
 8 android:layout_height="wrap_content"
 9         android:layout_margin="1dip"
10         android:textColor="#ffffffff"
11         android:layout_width="fill_parent"
12         android:gravity="center"
13         android:background="#bb000000"
14         android:id="@+id/tvTitleToast" />
15 <LinearLayout
16 android:layout_height="wrap_content"
17         android:orientation="vertical"
18         android:id="@+id/llToastContent"
19         android:layout_marginLeft="1dip"
20         android:layout_marginRight="1dip"
21         android:layout_marginBottom="1dip"
22         android:layout_width="wrap_content"
23         android:padding="15dip"
24         android:background="#44000000" >
25 <ImageView
26 android:layout_height="wrap_content"
27         android:layout_gravity="center"
28         android:layout_width="wrap_content"
29         android:id="@+id/tvImageToast" />
30 <TextView
31 android:layout_height="wrap_content"
32         android:paddingRight="10dip"
33         android:paddingLeft="10dip"
34         android:layout_width="wrap_content"
35         android:gravity="center"
36         android:textColor="#ff000000"
37         android:id="@+id/tvTextToast" />
38 </LinearLayout>
39 </LinearLayout>
View Code

 

转载于:https://www.cnblogs.com/myxiaoQ/articles/3672604.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值