什么是Toast
1. Toast是一种提供给用户简洁提示信息的视图。
2. 该视图以悬浮于应用程序之上的形式呈现给用户。Toast提示界面不获取焦点,所以不影响用户的操作。Toast提示就是在不影响用户使用程序的同时,给用户提供某些提示信息。
3. Android提供的Toast类可以创建和显示该Toast信息。
Toast常用方法
Toast.makeText(context,text,duration); // 返回值为Toast
toast.setDuration(duration); // 设置持续时间
toast.setGravity(gravity,xOffset,yOffset); // 设置toast位置
toast.setText(s); // 设置提示内容
toast.show(); // 显示
toast.setGravity(gravity,x0ffset,y0ffset);
gravity: 通过 Gravity.xxxx 选择位置,注意 Gravity 不要漏掉
x0ffset: 相对当前位置的X轴(横向)的偏移量
y0ffset: 相对当前位置的Y轴(纵向)的偏移量
1 public class MainActivity extends ActionBarActivity {
2
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.fragment_main);
7 initEvent();
8
9 }
10
11 // 初始化点击事件
12 private void initEvent() {
13 // TODO Auto-generated method stub
14 findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
15
16 @Override
17 public void onClick(View v) {
18 // TODO Auto-generated method stub
19 showToast1();
20 }
21 });
22 }
23
24 // 显示默认toast
25 private void showToast1() {
26 // Toast toast=Toast.makeText(this,
27 // R.string.app_name,Toast.LENGTH_LONG);
28 Toast toast = Toast.makeText(this, "默认的Toast", Toast.LENGTH_LONG);
29 toast.show();
30 }
31
32 // 显示自定义位置的Toast
33 private void showToast2() {
34 // Toast toast=Toast.makeText(this,
35 // R.string.app_name,Toast.LENGTH_LONG);
36 Toast toast = Toast.makeText(this, "改变位置的Toast", Toast.LENGTH_LONG);
37 // toast.setGravity(gravity,x0ffset,y0ffset);
38 // gravity: 通过 Gravity.xxxx 选择位置,注意 Gravity 不要漏掉
39 // x0ffset: 相对当前位置的X轴(横向)的偏移量(负向左正向右),
40 // y0ffset: 相对当前位置的Y轴(纵向)的偏移量(负向上正向下)
41 toast.setGravity(Gravity.CENTER, 0, 0);
42
43 toast.show();
44 }
45
46 // 显示带有图片的Toast
47 private void showToast3() {
48 // Toast toast=Toast.makeText(this,
49 // R.string.app_name,Toast.LENGTH_LONG);
50 Toast toast = Toast.makeText(this, "带有图片的Toast", Toast.LENGTH_LONG);
51 LinearLayout toastLayout = (LinearLayout) toast.getView();
52 ImageView imageView = new ImageView(this);
53 imageView.setImageResource(R.drawable.ic_launcher);
54
55 toastLayout.addView(imageView, 0);// 图片在文字上方
56 toast.show();
57 }
58
59 // 自定义的toast
60 private void showToast4() {
61 // Toast toast=Toast.makeText(this,
62 // R.string.app_name,Toast.LENGTH_LONG);
63 LayoutInflater inflater = LayoutInflater.from(this);
64 View toastView = inflater.inflate(R.layout.toast, null);
65 Toast toast = new Toast(this);
66 toast.setView(toastView);
67 toast.show();
68 }
69 }
自定义Toast的代码。注意这里是setView(),而不是addView()。
另外在 R.layout.toast_layout 里面是我们自定义的 Toast 布局。本例中是一个ImageView,在其上下各有一个TextView。