Toast自定义,自定义Toast的两种方式,土司的代码显示

原创 2013年12月03日 13:17:14


自定义Toast替换系统的显示,代码中发现了有两种方式可以实现

方法一:

直接new布局,然后添加一个TextView实现,总体不涉及id,和布局xml的书写,适合平面化的toast

/**
	 * 自定义样式
	 * @param context
	 * @return
	 */
	private static LinearLayout setToastSelfStyle(Context context) {
		if (linearLayout == null) {
			linearLayout = new LinearLayout(context);
			LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
			lp.setMargins(26,0,26,0);
			linearLayout.setLayoutParams(lp);
			linearLayout.setGravity(Gravity.CENTER);
			linearLayout.setBackgroundResource(R.drawable.toast_bg_style);
			linearLayout.setOrientation(LinearLayout.HORIZONTAL);
			//linearLayout.setPadding(16, 0, 16, 0); //框大小变化
		}
		linearLayout.removeAllViews();
		linearLayout.addView(mTv);
		return linearLayout;
	}
	/**
	 * 设置文字
	 * @param context
	 */
	private static void setText(Context context) {
		if (mTv == null) {
			mTv = new TextView(context);
			mTv.setTextColor(context.getResources().getColor(R.color.white));
			mTv.setTextSize(20);
		}
	}

最终演示如图:



===============================================

方法二:

使用常见的LayoutInflate来进行,这种可以加载自定义的动画,而且显示效果较多,特殊需求的话可以用得着

LayoutInflater inflater = getLayoutInflater();
   View layout = inflater.inflate(R.layout.custom,
     (ViewGroup) findViewById(R.id.llToast));
   ImageView image = (ImageView) layout
     .findViewById(R.id.tvImageToast);
   image.setImageResource(R.drawable.icon);
   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();

加载了一个自定义的布局,然后里面有一个Text,一个ImageView


两张方式实现了我们自定义Toast的方式,满足了两种不同的需求,很方便的


【作者一字一句敲出来的,如果转载请注明出处】


Android自定义吐司Toast:自定义样式、自定义显示时长

Android自定义吐司Toast:自定义样式、自定义显示时长鉴于系统toast,一般都是黑色背景且位于界面底部,我们看到有些app弹出的toast,有的在界面中间、有的在界面顶部,还有的是带图片的,...
  • weiren1101
  • weiren1101
  • 2016年11月21日 18:40
  • 2527

Android Toast 设置到屏幕中间,自定义Toast的实现方法

Toast  大家都是知道的,但是有的人好像没有自定义使用过,都是默认的,现在我们就可以自己设置Toast 的位置啦      1.Android Toast用于在手机屏幕上向用户显示一条信息,一段...
  • shenggaofei
  • shenggaofei
  • 2016年07月16日 15:01
  • 3826

自定义toast样式和指定显示位置

  • u012619033
  • u012619033
  • 2016年05月17日 17:14
  • 856

Toast拓展--自定义显示时间和动画

我们在Android应用开发中经常会需要在界面上弹出一个对界面操作无影响的小提示框来提示用户一些信息,这时候一般都会使用Android原生的Toast类,一开始觉得,挺好用的,但是用久了就发现,Toa...
  • xyq046463
  • xyq046463
  • 2016年07月05日 10:07
  • 6992

Android 弹无虚发之第五弹:来点儿不一样的Toast(自定义Toast,设置Toast显示位置,自定义Toast的复杂布局)

说起Toast,大家一定很熟悉了,常常在网络连接不可用或者完成某个操作后,就会看到在手机屏幕的下方,显示出来一段提示文字,过一会儿又会自动消失。它就是Toast,跟Notification一样,也是一...
  • pringlee2011
  • pringlee2011
  • 2014年02月28日 20:33
  • 4457

Adroid中Toast自定义显示时间

Toast是Android中使用频率较高的弹窗提示手段,使用起来简单、方便。常规使用方法这里不做说明,继前一片博客《Android中Toast全屏显示》,其中抛砖引玉的给出一个简单的实现Toast全屏...
  • harry_helei
  • harry_helei
  • 2016年07月14日 14:28
  • 6829

安卓Toast自定义及防止重复显示

Toast是安卓系统中,对用户误操作时或某功能执行完毕时,对用户的一种提示,他没有焦点,并在一定时间内会消失,但用户连续误操作(如登录时,密码错误)多次时,怎会有多个Toast被创建,系统会把这些to...
  • baiyuliang2013
  • baiyuliang2013
  • 2014年08月18日 09:21
  • 2229

Toast自定义显示时长的解决方案

关于Toast,大家可能熟的不能再熟了,但是都知道它有一个缺点,就是没有办法控制显示时长,默认有俩种状态, Toast.LENGTH_LONG 默认显示3.5秒 Toast.LENGTH_...
  • u012808234
  • u012808234
  • 2016年09月02日 10:58
  • 1387

Android自定义Toast的时长、位置、及显示的View

Android自定义Toast首先是自定义时长:说是这么说,但是android自带的两个时长 LENGTH_SHORT (2秒) 和LENGTH_LONG (3.5秒)基本已经够用了,一般也没有特地去...
  • chang_1134
  • chang_1134
  • 2016年05月07日 23:59
  • 3735

Android - Toast自定义显示时间,以及时长

说明: 使用Timer自定义Toast显示时间。 自带的: private static final int LONG_DELAY = 3500; // 3.5 seconds   ...
  • u012246458
  • u012246458
  • 2016年12月21日 16:16
  • 4557
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Toast自定义,自定义Toast的两种方式,土司的代码显示
举报原因:
原因补充:

(最多只允许输入30个字)