Android中Toast的用法

Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。下面用一个实例来看看如何使用Toast。

1.默认效果

代码

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

2.自定义显示位置效果

代码

toast = Toast.makeText(getApplicationContext(),"自定义位置Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

3.带图片效果

 

代码

toast = Toast.makeText(getApplicationContext(),"带图片的Toast", Toast.LENGTH_LONG);
   toast.setGravity(Gravity.CENTER, 0, 0);//居中
   LinearLayout toastView = (LinearLayout) toast.getView();
   ImageView imageCodeProject = new ImageView(getApplicationContext());
   imageCodeProject.setImageResource(R.drawable.icon);
   toastView.addView(imageCodeProject, 0);//新建一个imageview,然后加入到toastview中
   toast.show();

4.完全自定义效果

代码

LayoutInflater inflater = getLayoutInflater();
   View layout = inflater.inflate(R.layout.custom,(ViewGroup) findViewById(R.id.llToast));
//新建一个imageview,然后加进去 ImageView image
= (ImageView) layout.findViewById(R.id.tvImageToast); image.setImageResource(R.drawable.icon);
//TextView是用来显示文字内容的 TextView title
= (TextView) layout.findViewById(R.id.tvTitleToast); title.setText("Attention"); TextView text = (TextView) layout.findViewById(R.id.tvTextToast); text.setText("完全自定义Toast");
toast
= new Toast(getApplicationContext()); toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();

5. 其他线程通过 Handler 的调用

 

Java代码  
//调用方法1  
    //Thread th=new Thread(this);  
    //th.start();  
    //调用方法2  
    handler.post(new Runnable() {  
        @Override  
        public void run() {  
            showToast();  
        }  
    });  
 
Java代码  
public void showToast(){  
        Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他线程中调用显示", Toast.LENGTH_SHORT);  
        toast.show();  
    }  
 
Java代码  
Handler handler=new Handler(){  
        @Override  
        public void handleMessage(Message msg) {  
            int what=msg.what;  
            switch (what) {  
            case 1:  
                showToast();  
                break;  
            default:  
                break;  
            }  
              
            super.handleMessage(msg);  
        }  
    };  
 
Java代码  
@Override  
    public void run() {  
        handler.sendEmptyMessage(1);  
    }  
 

 

 

 

 

 

posted @ 2012-07-26 11:03  Tammie-锴  阅读(895)  评论(0编辑  收藏  举报