安卓——Toast的使用

1 常见toast

Toast.makeText(getApplicationContext(), "要显示的文本", 0).show();
 这是默认显示的位置,以及文本信息,第三个参数是常量,Toast.LENGTH_SHORT(0)和Toast.LENGTH_LONG(1)代表显示的时间长度。

2 可以设置toast的margin值

Toast msg1 = Toast.makeText(getApplicationContext(), "A", 0);
		msg1.setMargin(0.0F, 0.8F);//横向往右,竖向往上
		Log.i("123", ""+msg1.getHorizontalMargin());
		Log.i("123", ""+msg1.getVerticalMargin());
		msg1.show();
这里几乎置顶了,可能和屏幕大小的关系,

3 可以自定义设置toast的视图

Toast toast = new Toast(getApplicationContext());//这里不能使用上面那个方法创建对象
		ImageView iv = new ImageView(getApplicationContext());
		iv.setImageResource(R.drawable.ic_launcher);
		toast.setView(iv);//设置imageview的视图
		toast.show();
这里的话 视图就改变了。变成了自己想要的视图。

4 自定义布局,然后添加自定义的view 和默认的view

Toast toast = Toast.makeText(getApplicationContext(), "ABC", 0);
		LinearLayout llayout = new LinearLayout(getApplicationContext());//容器
		llayout.setOrientation(LinearLayout.VERTICAL);//方向
		ImageView iv = new ImageView(getApplicationContext());//自己的view
		iv.setImageResource(R.drawable.ic_launcher);
		View v = toast.getView();//默认的view
		llayout.addView(iv);//加入到容器中
		llayout.addView(v);
		toast.setView(llayout);
		toast.show();
这里很明显可以看到上面是自己的view,然后和默认的组合起来了。

5 自定义布局 在toast默认的view中添加view

Toast msg;
        msg = Toast.makeText(getApplicationContext(),"带图片的Toast", Toast.LENGTH_LONG);
        msg.setGravity(Gravity.CENTER, 0, 0);								//设置显示位置
        LinearLayout toastView = (LinearLayout) msg.getView();//强转 默认的view成一个容器
        ImageView imageCodeProject = new ImageView(getApplicationContext());	//图片
        imageCodeProject.setImageResource(R.drawable.ic_launcher);
        toastView.addView(imageCodeProject, 0);	//添加View
        msg.show();
很明显可以看到和上面的不一样的效果,因为这里是用了默认的toast的view,用的它的背景,然后加入imageview,效果还是不错的。

6 因为toast是更新UI界面的方法,所以使用show()。另外如果想要显示在子线程中我们怎么做呢?

public static void showOnUiThread(final Activity context, final String text) {
		context.runOnUiThread(new Runnable() {
			@Override
			public void run() {
				Toast.makeText(context, text, 0).show();
			}
		});
	}
好了,另外有个setGravity(,,);设置显示的位置。这里toast上下文全部用ge'ta'pgetapplicationContext()获得,不用写 ***Activity.this的形式,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值