Toasty
来源:互联网 发布:php 图片处理类 编辑:程序博客网 时间:2024/06/09 08:58
Toasty
一个创建自定义Toast的库。正如作者所说,这个库是:
The usual Toast, but with steroids.
Toasty Android Studio编写
从Github下载,直接导入 Import Project运行
Toasty 效果:
Toasty 结构
实现在Module:toasty中,实例在Module:app中
Toasty 7中具体实例
1、To display an error Toast:
Toasty.error(yourContext, "This is an error toast.", Toast.LENGTH_SHORT, true).show();
2、To display a success Toast:
Toasty.success(yourContext, "Success!", Toast.LENGTH_SHORT, true).show();
3、To display an info Toast:
Toasty.info(yourContext, "Here is some info for you.", Toast.LENGTH_SHORT, true).show();
4、To display a warning Toast:
Toasty.warning(yourContext, "Beware of the dog.", Toast.LENGTH_SHORT, true).show();
5、To display the usual Toast:
Toasty.normal(yourContext, "Normal toast w/o icon").show();
6、To display the usual Toast with icon:
Toasty.normal(yourContext, "Normal toast w/ icon", yourIconDrawable).show();
7、You can also create your custom Toasts with the custom() method:
Toasty.custom(yourContext, "I'm a custom Toast", yourIconDrawable, textColor, tintColor, duration, withIcon, true).show();
There are variants of each method, feel free to explore this library.
前六种都是使用Toasty中custom方法实现,根本实现还是Toast。
final Toast currentToast = new Toast(context);final View toastLayout = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.toast_layout, null);
Toasty 实现
Toasty.java
@SuppressLint("InflateParams")public class Toasty { private static final @ColorInt int DEFAULT_TEXT_COLOR = Color.parseColor("#FFFFFF"); private static final @ColorInt int ERROR_COLOR = Color.parseColor("#D50000"); private static final @ColorInt int INFO_COLOR = Color.parseColor("#3F51B5"); private static final @ColorInt int SUCCESS_COLOR = Color.parseColor("#388E3C"); private static final @ColorInt int WARNING_COLOR = Color.parseColor("#FFA900"); private static final String TOAST_TYPEFACE = "sans-serif-condensed"; private Toasty() { } public static @CheckResult Toast normal(@NonNull Context context, @NonNull String message) { return normal(context, message, Toast.LENGTH_SHORT, null, false); } public static @CheckResult Toast normal(@NonNull Context context, @NonNull String message, Drawable icon) { return normal(context, message, Toast.LENGTH_SHORT, icon, true); } public static @CheckResult Toast normal(@NonNull Context context, @NonNull String message, int duration) { return normal(context, message, duration, null, false); } public static @CheckResult Toast normal(@NonNull Context context, @NonNull String message, int duration, Drawable icon) { return normal(context, message, duration, icon, true); } public static @CheckResult Toast normal(@NonNull Context context, @NonNull String message, int duration, Drawable icon, boolean withIcon) { return custom(context, message, icon, DEFAULT_TEXT_COLOR, duration, withIcon); } public static @CheckResult Toast warning(@NonNull Context context, @NonNull String message) { return warning(context, message, Toast.LENGTH_SHORT, true); } public static @CheckResult Toast warning(@NonNull Context context, @NonNull String message, int duration) { return warning(context, message, duration, true); } public static @CheckResult Toast warning(@NonNull Context context, @NonNull String message, int duration, boolean withIcon) { return custom(context, message, ToastyUtils.getDrawable(context, R.drawable.ic_error_outline_white_48dp), DEFAULT_TEXT_COLOR, WARNING_COLOR, duration, withIcon, true); } public static @CheckResult Toast info(@NonNull Context context, @NonNull String message) { return info(context, message, Toast.LENGTH_SHORT, true); } public static @CheckResult Toast info(@NonNull Context context, @NonNull String message, int duration) { return info(context, message, duration, true); } public static @CheckResult Toast info(@NonNull Context context, @NonNull String message, int duration, boolean withIcon) { return custom(context, message, ToastyUtils.getDrawable(context, R.drawable.ic_info_outline_white_48dp), DEFAULT_TEXT_COLOR, INFO_COLOR, duration, withIcon, true); } public static @CheckResult Toast success(@NonNull Context context, @NonNull String message) { return success(context, message, Toast.LENGTH_SHORT, true); } public static @CheckResult Toast success(@NonNull Context context, @NonNull String message, int duration) { return success(context, message, duration, true); } public static @CheckResult Toast success(@NonNull Context context, @NonNull String message, int duration, boolean withIcon) { return custom(context, message, ToastyUtils.getDrawable(context, R.drawable.ic_check_white_48dp), DEFAULT_TEXT_COLOR, SUCCESS_COLOR, duration, withIcon, true); } public static @CheckResult Toast error(@NonNull Context context, @NonNull String message) { return error(context, message, Toast.LENGTH_SHORT, true); } public static @CheckResult Toast error(@NonNull Context context, @NonNull String message, int duration) { return error(context, message, duration, true); } public static @CheckResult Toast error(@NonNull Context context, @NonNull String message, int duration, boolean withIcon) { return custom(context, message, ToastyUtils.getDrawable(context, R.drawable.ic_clear_white_48dp), DEFAULT_TEXT_COLOR, ERROR_COLOR, duration, withIcon, true); } public static @CheckResult Toast custom(@NonNull Context context, @NonNull String message, Drawable icon, @ColorInt int textColor, int duration, boolean withIcon) { return custom(context, message, icon, textColor, -1, duration, withIcon, false); } public static @CheckResult Toast custom(@NonNull Context context, @NonNull String message, @DrawableRes int iconRes, @ColorInt int textColor, @ColorInt int tintColor, int duration, boolean withIcon, boolean shouldTint) { return custom(context, message, ToastyUtils.getDrawable(context, iconRes), textColor, tintColor, duration, withIcon, shouldTint); } public static @CheckResult Toast custom(@NonNull Context context, @NonNull String message, Drawable icon, @ColorInt int textColor, @ColorInt int tintColor, int duration, boolean withIcon, boolean shouldTint) { final Toast currentToast = new Toast(context); final View toastLayout = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)) .inflate(R.layout.toast_layout, null); final ImageView toastIcon = (ImageView) toastLayout.findViewById(R.id.toast_icon); final TextView toastTextView = (TextView) toastLayout.findViewById(R.id.toast_text); Drawable drawableFrame; if (shouldTint) drawableFrame = ToastyUtils.tint9PatchDrawableFrame(context, tintColor); else drawableFrame = ToastyUtils.getDrawable(context, R.drawable.toast_frame); ToastyUtils.setBackground(toastLayout, drawableFrame); if (withIcon) { if (icon == null) { throw new IllegalArgumentException("Avoid passing 'icon' as null if 'withIcon' is set to true"); } ToastyUtils.setBackground(toastIcon, icon); } else { toastIcon.setVisibility(View.GONE); } toastTextView.setTextColor(textColor); toastTextView.setText(message); toastTextView.setTypeface(Typeface.create(TOAST_TYPEFACE, Typeface.NORMAL)); currentToast.setView(toastLayout); currentToast.setDuration(duration); return currentToast; }}
ToastyUtils .java
final class ToastyUtils { private ToastyUtils() { } static Drawable tint9PatchDrawableFrame(@NonNull Context context, @ColorInt int tintColor) { final NinePatchDrawable toastDrawable = (NinePatchDrawable) getDrawable(context, R.drawable.toast_frame); toastDrawable.setColorFilter(new PorterDuffColorFilter(tintColor, PorterDuff.Mode.SRC_IN)); return toastDrawable; } static void setBackground(@NonNull View view, Drawable drawable) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { view.setBackground(drawable); } else { view.setBackgroundDrawable(drawable); } } static Drawable getDrawable(@NonNull Context context, @DrawableRes int id) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { return context.getDrawable(id); } else { return context.getResources().getDrawable(id); } }}
Toasty根本方法
Toast custom(@NonNull Context context, @NonNull String message, Drawable icon, @ColorInt int textColor, @ColorInt int tintColor, int duration, boolean withIcon, boolean shouldTint) { final Toast currentToast = new Toast(context); final View toastLayout = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)) .inflate(R.layout.toast_layout, null); final ImageView toastIcon = (ImageView) toastLayout.findViewById(R.id.toast_icon); final TextView toastTextView = (TextView) toastLayout.findViewById(R.id.toast_text); Drawable drawableFrame; if (shouldTint) { drawableFrame = ToastyUtils.tint9PatchDrawableFrame(context, tintColor); } else { drawableFrame = ToastyUtils.getDrawable(context, R.drawable.toast_frame); } ToastyUtils.setBackground(toastLayout, drawableFrame); if (withIcon) { if (icon == null) { throw new IllegalArgumentException("Avoid passing 'icon' as null if 'withIcon' is set to true"); } ToastyUtils.setBackground(toastIcon, icon); } else { toastIcon.setVisibility(View.GONE); } toastTextView.setTextColor(textColor); toastTextView.setText(message); toastTextView.setTypeface(Typeface.create(TOAST_TYPEFACE, Typeface.NORMAL)); currentToast.setView(toastLayout); currentToast.setDuration(duration); return currentToast; }
参数2:文本提示语
参数3:左边小图标
参数4:文字颜色
参数5:背景颜色
参数6:提示时长
参数7:是否显示左边小图标
参数8:是否使用背景色
Drawable yourIconDrawable = getResources().getDrawable(R.drawable.ic_pets_white_48dp);Toasty.custom(MainActivity.this, "I'm a custom Toast", yourIconDrawable, Color.GREEN, Color.CYAN, 3000, true, true).show();
0 0
- Toasty
- Toasty
- 第三方开源库:Toast工具:Toasty
- 别人家的 Toast——Toasty
- Android第三方库——Toasty
- Android第三方库Toasty--binbinYang
- 安卓开发 Toasty的使用
- android toast 简单自定义 && github toasty
- Toast加强版Toasty简单使用
- 安卓第三方工具类 Toast弹窗:Toasty
- 2017年您绝对想尝试的新Android库之Toasty
- bootstrap-不同的表单
- Android移动应用开发学习笔记(一)——hello world
- [IOS APP]慧悟禅故事-有声小说
- 全局雾效2
- linux环境常用的性能监控和协助开发调试工具
- Toasty
- conda能够实现多个环境共存原因的感悟
- dijkstra算法+堆优化 ///各种被坑~~~
- win10 linux子系统安装ipython
- Ubuntu 16.04 + GTX1060 + Cuda8.0 + OpenCV3.2
- 【剑指Offer】二叉搜索树的第k个结点
- node及npm安装过程中的环境变量设置win7
- 阿里笔试题(2017在线编程题)-- 数串分组
- Eclipse更改字符集