您的位置:首页 > 移动开发 > Android开发

Android中Toast的用法

2012-07-26 11:03 155 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: