自定义Toast,让提示更亲众

原创 2013年12月02日 19:48:21

注释都写上了,希望能够帮助上搜索的奋斗者,转载务必注明出处http://blog.csdn.net/u013017597/article/details/17079141

Toast自定义的两种方式见本博客的这篇文章:http://blog.csdn.net/u013017597/article/details/17094319

最定义Toast,在工作中能够起到很好的展示效果

今天刚刚构建了一个代码直接上

private static LinearLayout setToastSelfStyle(Context context, String strText) {
		if (linearLayout == null) {
			linearLayout = new LinearLayout(context);
		}
		linearLayout.setOrientation(LinearLayout.HORIZONTAL);
		if (mTv == null) {
			mTv = new TextView(context);
		}
		mTv.setText(strText);
		mTv.setTextColor(context.getResources().getColor(R.color.beige));
		mTv.setTextSize(20);
		linearLayout.setGravity(Gravity.CENTER);
		linearLayout.setBackgroundResource(R.drawable.toast_bg_style);
		linearLayout.removeAllViews();
		linearLayout.addView(mTv);
		return linearLayout;
	}
	
	/**
	 * 通用,吐司提示。显示时长2秒
	 * @param context
	 * @param text
	 */
	public static void showToast(Context context, String text) {
		if (toast == null) {
			toast = new Toast(context);
		}
		toast.setView(setToastSelfStyle(context, text)); // 这里只可以String类型的数据
		toast.show();
	}

上面有个问题就是,想输入id或者文字的时候都需要多执行好几行代码

优化下只变动一行代码就满足id和文字的展示


/**
	 * 通用,吐司提示。显示时长2秒
	 * @param context
	 * @param text
	 */
	public static void showToast(Context context, String text) {
		if (toast == null) {
			toast = new Toast(context);
		}
		if (mTv == null) {
			mTv = new TextView(context);
		}
		mTv.setText(text);
		toast.setView(setToastSelfStyle(context));
		toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
		toast.show();
	}
	/**
	 * 自定义样式
	 * @param context
	 * @return
	 */
	private static LinearLayout setToastSelfStyle(Context context) {
		if (linearLayout == null) {
			linearLayout = new LinearLayout(context);
		}
		if (mTv == null) {
			mTv = new TextView(context);
		}
		mTv.setTextColor(context.getResources().getColor(R.color.white));
		mTv.setTextSize(20);
		linearLayout.setGravity(Gravity.CENTER);
		linearLayout.setBackgroundResource(R.drawable.toast_bg_style);
		linearLayout.removeAllViews();
		linearLayout.addView(mTv);
		linearLayout.setOrientation(LinearLayout.HORIZONTAL);
		return linearLayout;
	}

这样构建了自己定义的背景灰色,字体颜色为白色的Toast,当然这里我们对于布局进行了一个圆角的转换

<?xml version="1.0" encoding="utf-8"?>
<!-- Toast提示背景色 -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item><shape>
            <gradient android:angle="180" android:endColor="#808080" android:startColor="#808080" />

            <stroke android:width="1dip" android:color="#808080" />

            <corners android:radius="3dp" />

            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
        </shape></item>
    <!--
gradient 主体渐变 startColor开始颜色,endColor结束颜色 ,angle开始渐变的角度(值只能为90的倍数,0时为左到右渐变,90时为下到上渐变,依次逆时针类推)
stroke 边框 width 边框宽度,color 边框颜色
corners 圆角 radius 半径,0为直角 值越大越圆
padding text值的相对位置




    -->

</selector>

注释都写上了,希望能够帮助上搜索的奋斗者,转载务必注明出处http://blog.csdn.net/u013017597/article/details/17079141

Android-自定义圆角Toast提示框

有时候我们根据需求需要自己指定toast的样式,例如在

Android自定义注册页面提示,替换Toast功能

最近项目中,在注册页面要实现判断用户是否输入了文字,两次密码是否一样,因此对用户填写的信息进行提示性的校验。先看效果图 布局页面主要是在要显示提示的地方添加布局LinearLayout。里面是一个I...
  • tsaopin
  • tsaopin
  • 2015年08月04日 22:19
  • 1083

Android的自定义适配器实现活动中的一些资源方法,比如Toast方法弹出提示

以下图片均截图来自课工厂,里面的解释是自己在自学时候的一些理解,如果有错请指出~ 在一些activity里很容易实现Toast弹出框,但是想在其他的地方比如自定义适配器Adapter里,在这里可以...

微信小程序自定义弹窗showModel模态框、Toast提示框、actionSheet底部动画弹窗(多API调用)

微信小程序官方API提供的显示模态弹窗,只能简单地显示文字内容,官方的样式并不能满足业务需求,不能对对话框内容、宽高、样式进行自定义,欠缺灵活性,为了解决这一痛点,所以自己从模态弹窗的原理角度来实现了...

笔记 - 自定义toast 小提示弹框

项目中常用到一些小组件,如toast/alert 弹框,关于toast提示框,貌似一般在移动端说得比较多。。。嗯,不管了,差不多的意思,项目中就叫它toast提示框。(关于移动端弹框, 参考:APP提...

简单自定义Toast,实现好看的消息提示框

简单自定义Toast,实现好看的消息提示框 一般系统给我们的Toast都是黑色的  比较不美观,所以作为一名新晋的博主,就和大家一起分享分享我的开发小经验,当然各位 老鸟如果有更好的方法,欢迎在下方...

提示控件之自定义Toast

Toast使用简单,性能优良,在Android APP中使用非常广泛。 但实际开发中我们并不仅仅满足于系统提供Toast的简单使用,同一行代码在不同的Android手机上就可能有不同的显示样...

自定义Toast提示框 → AppToastMgr

package com.jingewenku.abrahamcaijin.commonutil;   import android.content.Co...

安卓Toast显示提示消息(自定义view,根据子线程消息显示提示)

全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓Toast显示提示消息。 使用系统自带Toast提示框 //显示一个Toast private void displa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义Toast,让提示更亲众
举报原因:
原因补充:

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