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

Android~Toast使用

2015-06-06 09:20 405 查看
在android开发中Toast是比较常用的消息提示框,接下来我们看看Toast的用法。

1.一般用法

通常我们使用Toast的方法是:Toast.makeText

Toast.makeText



该方法很简单:Toast.makeText(Context,"默认的Toast",Toast.LENGTH_LONG).show();

这样就可以显示一个Toast啦。

2.自定义位置用法

有时候我们的消息提示框未必在底部显示的,有可能需要在顶部提示~~那么该怎么使用才能令Toast显示在顶部呢?

//这一步跟上面的写法差不多
Toast toast=Toast.makeText(getApplicationContext(), "自定义显示位置的Toast", Toast.LENGTH_SHORT); 
toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100); 
toast.show();//第一个参数:设置toast在屏幕中显示的位置。我现在的设置是居中靠顶
//第二第三个参数分别为toast在x,y上的偏移量 //如果你设置的偏移量超过了屏幕的范围,toast将在屏幕内靠近超出的那个边界显示





3.带图片的Toast

有时候光是文字的Toast提示框已经满足不了我们了~还需要图片~

那么接下来我们看一下怎么样把图片加上去

Toast toast=Toast.makeText(getApplicationContext(), "显示带图片的toast", 3000);
toast.setGravity(Gravity.CENTER, 0, 0);
//创建图片视图对象
ImageView imageView= new ImageView(getApplicationContext());
//设置图片
imageView.setImageResource(R.drawable.ic_launcher);
//获得toast的布局
LinearLayout toastView = (LinearLayout) toast.getView();
//设置此布局为横向的
toastView.setOrientation(LinearLayout.HORIZONTAL);
//将ImageView在加入到此布局中的第一个位置
toastView.addView(imageView, 0);
toast.show();



4.自定义Toast

LayoutInflater inflater = getLayoutInflater();
//通过制定XML文件及布局ID来填充一个视图对象
View layout = inflater.inflate(R.layout.custom2,(ViewGroup)findViewById(R.id.llToast));

ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast);
//设置图片
image.setImageResource(R.drawable.ic_launcher);
//生成textview对象
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
//设置标题
title.setText("标题栏");

TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
设置内容
text.setText("完全自定义Toast");

Toast toast= new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER , 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();


5.在其他线程调用Toast

toas在主线才能够使用~为什么?相信大家都知道android的ui只能在主线程运行。那么我们在别的线程想用到toast怎么办呢?

我们可以使用handler~至于不熟悉handler的童鞋~~自己去百度吧~


最后提一下Toast的使用技巧:

在开发过程中必然会大量使用到toast,那么每个地方都写一大串代码明显是不可行的,就算是最简单的Toast.makeText()也每次都要传三个参数。那么我们如何简化toast的使用呢?

方法一:

我们可以在activity的基类封装toast,在开发中我们常常会有一个activity的基类。那么我们的toast可以写在这个地方

方法二:

定义一个工具类,该工具类里有一个静态调用toast的方法

public static void showToast(String str){

if (mToast == null) {
mToast = Toast.makeText(getApplicationContext(), str,Toast.LENGTH_LONG);
} else {
mToast.setText(str);
}
mToast.show();
}



那么我们只需要:类名.showToast("Test");

就可以调用了,相比每次都要传三个参数最后还要调用一下show()的用法,是不是方便很多呢?


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: