|
|
@@ -1,33 +1,194 @@
|
|
|
package com.umano.message.supertoasts.utils;
|
|
|
|
|
|
-import com.umano.message.supertoasts.interfacepack.BaseToast;
|
|
|
+import android.content.Context;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.TextView;
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
/**
|
|
|
- * 全局消息调用层
|
|
|
- * Created by Arison on 2017/5/27.
|
|
|
+ * Created by FANGlh on 2017/8/10.
|
|
|
+ * function:
|
|
|
*/
|
|
|
|
|
|
public class ToastUtils {
|
|
|
- private BaseToast mToast;
|
|
|
- private static ToastUtils instance;
|
|
|
+ private Toast toast;
|
|
|
+ private LinearLayout toastView;
|
|
|
|
|
|
- public ToastUtils(BaseToast toast){
|
|
|
- mToast= toast;
|
|
|
+ /**
|
|
|
+ * 修改原布局的Toast
|
|
|
+ */
|
|
|
+ public ToastUtils() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 完全自定义布局Toast
|
|
|
+ * @param context
|
|
|
+ * @param view
|
|
|
+ */
|
|
|
+ public ToastUtils(Context context, View view, int duration){
|
|
|
+ toast=new Toast(context);
|
|
|
+ toast.setView(view);
|
|
|
+ toast.setDuration(duration);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 向Toast中添加自定义view
|
|
|
+ * @param view
|
|
|
+ * @param postion
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ToastUtils addView(View view,int postion) {
|
|
|
+ toastView = (LinearLayout) toast.getView();
|
|
|
+ toastView.addView(view, postion);
|
|
|
+
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置Toast字体及背景颜色
|
|
|
+ * @param messageColor
|
|
|
+ * @param backgroundColor
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ToastUtils setToastColor(int messageColor, int backgroundColor) {
|
|
|
+ View view = toast.getView();
|
|
|
+ if(view!=null){
|
|
|
+ TextView message=((TextView) view.findViewById(android.R.id.message));
|
|
|
+ message.setBackgroundColor(backgroundColor);
|
|
|
+ message.setTextColor(messageColor);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置Toast字体及背景图片
|
|
|
+ * @param messageColor
|
|
|
+ * @param background
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ToastUtils setToastBackground(int messageColor, int background) {
|
|
|
+ View view = toast.getView();
|
|
|
+ if(view!=null){
|
|
|
+ TextView message=((TextView) view.findViewById(android.R.id.message));
|
|
|
+ message.setBackgroundResource(background);
|
|
|
+ message.setTextColor(messageColor);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 短时间显示Toast
|
|
|
+ */
|
|
|
+ public ToastUtils Short(Context context, CharSequence message){
|
|
|
+ if(toast==null||(toastView!=null&&toastView.getChildCount()>1)){
|
|
|
+ toast= Toast.makeText(context, message, Toast.LENGTH_SHORT);
|
|
|
+ toastView=null;
|
|
|
+ }else{
|
|
|
+ toast.setText(message);
|
|
|
+ toast.setDuration(Toast.LENGTH_SHORT);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
}
|
|
|
|
|
|
- public static ToastUtils create(BaseToast mToast){
|
|
|
- if (instance==null){
|
|
|
- synchronized (ToastUtils.class){
|
|
|
- if (instance==null){
|
|
|
- instance=new ToastUtils(mToast);
|
|
|
- }
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 短时间显示Toast
|
|
|
+ */
|
|
|
+ public ToastUtils Short(Context context, int message) {
|
|
|
+ if(toast==null||(toastView!=null&&toastView.getChildCount()>1)){
|
|
|
+ toast= Toast.makeText(context, message, Toast.LENGTH_SHORT);
|
|
|
+ toastView=null;
|
|
|
+ }else{
|
|
|
+ toast.setText(message);
|
|
|
+ toast.setDuration(Toast.LENGTH_SHORT);
|
|
|
}
|
|
|
- return instance;
|
|
|
+ return this;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 长时间显示Toast
|
|
|
+ */
|
|
|
+ public ToastUtils Long(Context context, CharSequence message){
|
|
|
+ if(toast==null||(toastView!=null&&toastView.getChildCount()>1)){
|
|
|
+ toast= Toast.makeText(context, message, Toast.LENGTH_LONG);
|
|
|
+ toastView=null;
|
|
|
+ }else{
|
|
|
+ toast.setText(message);
|
|
|
+ toast.setDuration(Toast.LENGTH_LONG);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 长时间显示Toast
|
|
|
+ *
|
|
|
+ * @param context
|
|
|
+ * @param message
|
|
|
+ */
|
|
|
+ public ToastUtils Long(Context context, int message) {
|
|
|
+ if(toast==null||(toastView!=null&&toastView.getChildCount()>1)){
|
|
|
+ toast= Toast.makeText(context, message, Toast.LENGTH_LONG);
|
|
|
+ toastView=null;
|
|
|
+ }else{
|
|
|
+ toast.setText(message);
|
|
|
+ toast.setDuration(Toast.LENGTH_LONG);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
+ }
|
|
|
|
|
|
- public BaseToast Builder(){
|
|
|
- return mToast;
|
|
|
+ /**
|
|
|
+ * 自定义显示Toast时间
|
|
|
+ *
|
|
|
+ * @param context
|
|
|
+ * @param message
|
|
|
+ * @param duration
|
|
|
+ */
|
|
|
+ public ToastUtils Indefinite(Context context, CharSequence message, int duration) {
|
|
|
+ if(toast==null||(toastView!=null&&toastView.getChildCount()>1)){
|
|
|
+ toast= Toast.makeText(context, message,duration);
|
|
|
+ toastView=null;
|
|
|
+ }else{
|
|
|
+ toast.setText(message);
|
|
|
+ toast.setDuration(duration);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 自定义显示Toast时间
|
|
|
+ *
|
|
|
+ * @param context
|
|
|
+ * @param message
|
|
|
+ * @param duration
|
|
|
+ */
|
|
|
+ public ToastUtils Indefinite(Context context, int message, int duration) {
|
|
|
+ if(toast==null||(toastView!=null&&toastView.getChildCount()>1)){
|
|
|
+ toast= Toast.makeText(context, message,duration);
|
|
|
+ toastView=null;
|
|
|
+ }else{
|
|
|
+ toast.setText(message);
|
|
|
+ toast.setDuration(duration);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 显示Toast
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ToastUtils show (){
|
|
|
+ toast.show();
|
|
|
+
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取Toast
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Toast getToast(){
|
|
|
+ return toast;
|
|
|
+ }
|
|
|
+
|
|
|
}
|