吐司工具类ToastUtil--集系统吐司,可设置背景颜色和字体颜色吐司,以及自定义布局吐司
2017-01-24 17:05
423 查看
如有不足,烦请见谅;如有帮助,顶一个!
关于系统吐司,可设置背景颜色和字体颜色吐司,以及自定义布局吐司。还可以居中显示吐司!
先来一个公共的公共接口Util
再来ToastUtil,实现Util
布局文件
这样一个集系统吐司,可改变背景颜色和字体颜色吐司,以及自定义布局吐司就实现了。
接下来是使用:
ooo啦!!!
关于系统吐司,可设置背景颜色和字体颜色吐司,以及自定义布局吐司。还可以居中显示吐司!
先来一个公共的公共接口Util
import android.content.Context; import android.content.res.Resources; import android.view.LayoutInflater; import com.techfit.bouncescrollview.BounceSVApp; import com.techfit.bouncescrollview.Utils.consts.ConstsHttp; import com.techfit.bouncescrollview.Utils.consts.ConstsIntent; import com.techfit.bouncescrollview.Utils.consts.ConstsSPKeys; /** * Created by wangzhengyang on 2017/1/20. */ public interface Util { /** * 全局的Context */ Context CONTEXT = BounceSVApp.getApp().getApplicationContext(); /** * 全局的布局加载器 */ LayoutInflater INFLATER = (LayoutInflater) CONTEXT.getSystemService(Context.LAYOUT_INFLATER_SERVICE); /** * 全局的Resource */ Resources RES = CONTEXT.getResources(); /** * 网络请求 */ //ConstsHttp HTTP = ConstsHttp.DEBUG; /** * SharedPreferences的key */ interface SPKEYS extends ConstsSPKeys { } /** * Intent传值(name,value)的name * 例:intent.putExtra(INTENT.USER, new User(1, "李四", "男", 21)); */ //interface INTENT extends ConstsIntent { //} }
再来ToastUtil,实现Util
import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.Shape; import android.view.Gravity; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.techfit.bouncescrollview.R; /** * 吐司工具类 * Created by wangzhengyang on 2017/1/19. */ public class ToastUtil implements Util { public static final int LAYOUT_TIP = R.layout.layout_tip; public static final int TEXT_VIEW_TIP = R.id.tip_text; public static final int IMG_VIWE_TIP = R.id.tip_img; public static final int GRAVITY_DEFAULT = Integer.MIN_VALUE; // 系统默认吐司 —》 /** * 短吐司 * @param pTip 要吐司的内容 */ public static void showTip(String pTip) { showTipDef(pTip, Toast.LENGTH_SHORT); } /** * 长吐司 * @param pTip 要吐司的内容 */ public static void showLongTip(String pTip) { showTipDef(pTip, Toast.LENGTH_LONG); } private static void showTipDef(String pTip, int pDuration) { if (null == pTip) throw new NullPointerException("Text is null!"); Toast.makeText(CONTEXT, pTip, pDuration).show(); } // 《— 系统默认吐司 // 显示自定义吐司 —》 private static void showTipCus(int pDuration, int layoutId, ViewCallBack pViewCallBack, int pGravity) { Toast tip = new Toast(CONTEXT); tip.setDuration(pDuration); if (layoutId <= 0) layoutId = LAYOUT_TIP; View v = INFLATER.inflate(layoutId, null); v = pViewCallBack.getView(v); tip.setView(v); if (pGravity != GRAVITY_DEFAULT) { tip.setGravity(pGravity, 0, 0); } tip.show(); } // 显示吐司 显示自定义默认吐司 —》 private static void showTipCustom(final String pTip, int pDuration, final int pGravity){ if (null == pTip) return; showTipCus(pDuration, LAYOUT_TIP, new ViewCallBack() { @Override public View getView(View v) { TextView tv = (TextView) v.findViewById(TEXT_VIEW_TIP); tv.setText(pTip); return v; } }, pGravity); } public static void showTipCus(String pTip) { showTipCustom(pTip, Toast.LENGTH_SHORT, GRAVITY_DEFAULT); } public static void showLongTipCus(String pTip) { showTipCustom(pTip, Toast.LENGTH_LONG, GRAVITY_DEFAULT); } public static void showTipCusCenter(final String pTip) { showTipCustom(pTip, Toast.LENGTH_SHORT,Gravity.CENTER); } public static void showLongTipCusCenter(final String pTip) { showTipCustom(pTip, aa6e Toast.LENGTH_LONG,Gravity.CENTER); } // 《— 显示吐司 显示自定义默认吐司 // 显示吐司 可以设置背景颜色和文字颜色 —》 private static void showTipCus(final String pTip, int pDuration, final int pGravity, final int bgColor, final int textColor){ if (null == pTip) return; showTipCus(pDuration, LAYOUT_TIP, new ViewCallBack() { @Override public View getView(final View v) { if (bgColor > 0) { ShapeDrawable shapeDrawable = new ShapeDrawable(new Shape() { @Override public void draw(Canvas canvas, Paint paint) { paint.setColor(bgColor); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL); canvas.drawRoundRect(new RectF(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()), 36f, 36f, paint); } }); v.setBackgroundDrawable(shapeDrawable); } TextView tv = (TextView) v.findViewById(TEXT_VIEW_TIP); tv.setTextColor(textColor); tv.setText(pTip); return v; } }, pGravity); } public static void showTipCus(String pTip, int bgColor, int textColor) { showTipCus(pTip, Toast.LENGTH_SHORT, GRAVITY_DEFAULT, bgColor, textColor); } public static void showLongTipCus(String pTip, int bgColor, int textColor) { showTipCus(pTip, Toast.LENGTH_LONG, GRAVITY_DEFAULT, bgColor, textColor); } public static void showTipCusCenter(final String pTip, int bgColor, int textColor) { showTipCus(pTip, Toast.LENGTH_SHORT,Gravity.CENTER, bgColor, textColor); } public static void showLongTipCusCenter(final String pTip, int bgColor, int textColor) { showTipCus(pTip, Toast.LENGTH_LONG,Gravity.CENTER, bgColor, textColor); } // 《— 显示吐司 可以设置背景颜色和文字颜色 // 显示吐司 传入布局id,和视图回调 —》 public static void showTipCus(int layoutId, ViewCallBack pViewCallBack){ showTipCus(Toast.LENGTH_SHORT, layoutId, pViewCallBack,GRAVITY_DEFAULT); } public static void showLongTipCus(int layoutId, ViewCallBack pViewCallBack){ showTipCus(Toast.LENGTH_LONG, layoutId, pViewCallBack,GRAVITY_DEFAULT ); } public static void showTipCusCenter(int layoutId, ViewCallBack pViewCallBack) { showTipCus(Toast.LENGTH_SHORT, layoutId, pViewCallBack, Gravity.CENTER); } public static void showLongTipCusCenter(int layoutId, ViewCallBack pViewCallBack) { showTipCus(Toast.LENGTH_LONG, layoutId, pViewCallBack, Gravity.CENTER); } // 《— 显示吐司 传入布局id,和视图回调 /** * 视图回调接口,将视图(View)传入,处理后,再返回 */ public interface ViewCallBack { View getView(View v); } // 《— 显示自定义吐司 }
布局文件
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
这样一个集系统吐司,可改变背景颜色和字体颜色吐司,以及自定义布局吐司就实现了。
接下来是使用:
//系统吐司 ToastUtil.showTip("系统吐司 def short toast");
//① 默认布局 ToastUtil.showTipCus("cus short toast");
//②传入布局的resId,和ViewCallBack,实现自定义吐司 ToastUtil.showTipCus(R.layout.layout_tip, new ToastUtil.ViewCallBack() { @Override public View getView(View v) { TextView tv = (TextView) v.findViewById(R.id.tip_text); tv.setText("自定义吐司 cus short toast"); tv.setTextColor(Color.RED); return v; } });
//③可以改变背景颜色和字体 ToastUtil.showTipCus("自定义吐司 cus short toast", Color.argb(0x90, 0xFF, 0xCC, 0x90), Color.rgb(0x00, 0x33, 0x00));
ooo啦!!!
相关文章推荐
- IOS_设置UITableView Section的背景颜色和字体颜色(自定义section布局)
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- Android之自定义背景Button按钮、自定义形状Button的全攻略、设置字体颜色
- android 动态java代码设置背景以及字体等颜色
- css样式设置鼠标选中后字体颜色以及背景颜色
- ubuntu16.04 xfce4的鼠标主题设置为oxygen-red、修改文件夹背景颜色、两处系统字体设置、右键菜单添加压缩解压选项
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- 设置UITableView Section的背景颜色和字体颜色-自定义Section
- iOS中设置导航栏的背景颜色和标题字体以及颜色,以及tabBarItem的图片和字体颜色的设置
- shell进度条以及shell中背景和字体颜色的设置
- markdown怎么设置颜色和字体以及背景颜色?
- jquery mobile 设置背景图片铺满整个屏幕以及自定义背景图文字颜色问题
- spinner自定义布局文件设置字体大小和颜色
- 导航栏的背景颜色以及字体大小颜色和大小的设置
- 快速设置UINavbar的属性包括背景 title的颜色字体以及改变返回键的图片
- Eclipse背景颜色,字体大小,自定义格式化设置,自定义keys,自动注释,各大src源码下载,自定义注释
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- 代码里面设置布局颜色以及背景图片
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠