当前位置:操作系统 > 安卓/Android >>

[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);
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,