Browse Source

update 0.0.10 ver

kongzue 4 years ago
parent
commit
3c763aa266
25 changed files with 221 additions and 45 deletions
  1. 3 3
      DialogX/build.gradle
  2. BIN
      DialogX/libs/DialogXInterface.jar
  3. 55 0
      DialogX/src/main/java/com/kongzue/dialogx/DialogX.java
  4. 6 0
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomDialog.java
  5. 10 0
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/InputDialog.java
  6. 9 0
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageDialog.java
  7. 4 15
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java
  8. 24 11
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java
  9. 1 0
      DialogX/src/main/java/com/kongzue/dialogx/interfaces/BaseDialog.java
  10. 9 0
      DialogX/src/main/java/com/kongzue/dialogx/style/MaterialStyle.java
  11. 24 2
      DialogX/src/main/java/com/kongzue/dialogx/util/NormalMenuArrayAdapter.java
  12. 1 1
      DialogX/src/main/java/com/kongzue/dialogx/util/views/BlurView.java
  13. 10 3
      DialogX/src/main/java/com/kongzue/dialogx/util/views/ProgressView.java
  14. 1 10
      DialogX/src/main/res/layout/layout_dialogx_wait.xml
  15. 7 0
      DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java
  16. 1 0
      DialogXInterface/build.gradle
  17. BIN
      DialogXInterface/libs/android.jar
  18. 4 0
      DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/DialogXStyle.java
  19. 35 0
      DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/ProgressViewInterface.java
  20. 8 0
      DialogXKongzueStyle/src/main/java/com/kongzue/dialogx/style/KongzueStyle.java
  21. 8 0
      DialogXMIUIStyle/src/main/java/com/kongzue/dialogx/style/MIUIStyle.java
  22. 1 0
      README.md
  23. BIN
      app/libs/DialogXIOSStyle-release.aar
  24. BIN
      app/libs/DialogXKongzueStyle-release.aar
  25. BIN
      app/libs/DialogXMIUIStyle-release.aar

+ 3 - 3
DialogX/build.gradle

@@ -6,7 +6,7 @@ def siteUrl = 'https://github.com/kongzue/DialogX' //项目在github主页地址
 def gitUrl = 'https://github.com/kongzue/DialogX.git'   //Git仓库的地址
 
 group = "com.kongzue.dialogx"
-version = "0.0.9"
+version = "0.0.10"
 
 android {
     compileSdkVersion 30
@@ -14,8 +14,8 @@ android {
     defaultConfig {
         minSdkVersion 21
         targetSdkVersion 30
-        versionCode 9
-        versionName "0.0.9"
+        versionCode 10
+        versionName "0.0.10"
 
         consumerProguardFiles "consumer-rules.pro"
 

BIN
DialogX/libs/DialogXInterface.jar


+ 55 - 0
DialogX/src/main/java/com/kongzue/dialogx/DialogX.java

@@ -4,8 +4,11 @@ import android.content.Context;
 import android.util.Log;
 
 import com.kongzue.dialogx.interfaces.BaseDialog;
+import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 import com.kongzue.dialogx.interfaces.DialogXStyle;
 import com.kongzue.dialogx.style.MaterialStyle;
+import com.kongzue.dialogx.util.InputInfo;
+import com.kongzue.dialogx.util.TextInfo;
 
 /**
  * @author: Kongzue
@@ -16,14 +19,66 @@ import com.kongzue.dialogx.style.MaterialStyle;
  */
 public class DialogX {
     
+    //开启日志
     public static boolean DEBUGMODE = true;
     
+    //全局主题风格
     public static DialogXStyle globalStyle = MaterialStyle.style();
+    
+    //全局对话框明暗风格
     public static DialogX.THEME globalTheme = DialogX.THEME.LIGHT;
+    
+    //对话框最大宽度(像素)
     public static int dialogMaxWidth;
+    
+    //是否允许 InputDialog 自动弹出键盘
     public static boolean autoShowInputKeyboard = true;
+    
+    //同时只显示一个 PopTip
     public static boolean onlyOnePopTip = true;
     
+    //默认按钮文字样式
+    public static TextInfo buttonTextInfo;
+    
+    //默认确定按钮文字样式
+    public static TextInfo okButtonTextInfo;
+    
+    //默认标题文字样式
+    public static TextInfo titleTextInfo;
+    
+    //默认内容文字样式
+    public static TextInfo messageTextInfo;
+    
+    //默认 WaitDialog 和 TipDialog 文字样式
+    public static TextInfo tipTextInfo;
+    
+    //默认输入框文字样式
+    public static InputInfo inputInfo;
+    
+    //默认底部菜单、对话框的标题文字样式
+    public static TextInfo menuTitleInfo;
+    
+    //默认底部菜单文本样式
+    public static TextInfo menuTextInfo;
+    
+    //默认对话框背景颜色(-1不生效)
+    public static int backgroundColor = -1;
+    
+    //默认对话框默认是否可以点击外围遮罩区域或返回键关闭,此开关不影响提示框(TipDialog)以及等待框(TipDialog)
+    public static boolean cancelable = true;
+    
+    //默认提示框及等待框(WaitDialog、TipDialog)默认是否可以关闭
+    public static boolean cancelableTipDialog = false;
+    
+    //默认取消按钮文本文字,影响 BottomDialog
+    public static String cancelButtonText;
+    
+    //默认 PopTip 文本样式
+    public static TextInfo popTextInfo;
+    
+    //全局 Dialog 生命周期监听器
+    public static DialogLifecycleCallback<BaseDialog> dialogLifeCycleListener;
+    
     public enum THEME {
         LIGHT, DARK
     }

+ 6 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomDialog.java

@@ -223,6 +223,12 @@ public class BottomDialog extends BaseDialog {
         
         @Override
         public void init() {
+            if (titleTextInfo == null) titleTextInfo = DialogX.menuTitleInfo;
+            if (titleTextInfo == null) titleTextInfo = DialogX.titleTextInfo;
+            if (messageTextInfo == null) messageTextInfo = DialogX.messageTextInfo;
+            if (cancelTextInfo == null) cancelTextInfo = DialogX.buttonTextInfo;
+            if (DialogX.backgroundColor != -1) setBackgroundColor(DialogX.backgroundColor);
+            
             boxRoot.setOnLifecycleCallBack(new DialogXBaseRelativeLayout.OnLifecycleCallBack() {
                 @Override
                 public void onShow() {

+ 10 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/InputDialog.java

@@ -5,6 +5,7 @@ import android.view.View;
 import androidx.annotation.ColorInt;
 import androidx.annotation.ColorRes;
 
+import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.interfaces.OnBackPressedListener;
 import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.OnInputDialogButtonClickListener;
@@ -30,12 +31,14 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(CharSequence title, CharSequence message, CharSequence okText) {
+        cancelable = DialogX.cancelable;
         this.title = title;
         this.message = message;
         this.okText = okText;
     }
     
     public InputDialog(int titleResId, int messageResId, int okTextResId) {
+        cancelable = DialogX.cancelable;
         this.title = getString(titleResId);
         this.message = getString(messageResId);
         this.okText = getString(okTextResId);
@@ -54,6 +57,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(CharSequence title, CharSequence message, CharSequence okText, CharSequence cancelText) {
+        cancelable = DialogX.cancelable;
         this.title = title;
         this.message = message;
         this.okText = okText;
@@ -61,6 +65,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(int titleResId, int messageResId, int okTextResId, int cancelTextResId) {
+        cancelable = DialogX.cancelable;
         this.title = getString(titleResId);
         this.message = getString(messageResId);
         this.okText = getString(okTextResId);
@@ -80,6 +85,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(CharSequence title, CharSequence message, CharSequence okText, CharSequence cancelText, String inputText) {
+        cancelable = DialogX.cancelable;
         this.title = title;
         this.message = message;
         this.okText = okText;
@@ -94,6 +100,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(CharSequence title, CharSequence message, CharSequence okText, CharSequence cancelText, CharSequence otherText) {
+        cancelable = DialogX.cancelable;
         this.title = title;
         this.message = message;
         this.okText = okText;
@@ -102,6 +109,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(int titleResId, int messageResId, int okTextResId, int cancelTextResId, int otherTextResId) {
+        cancelable = DialogX.cancelable;
         this.title = getString(titleResId);
         this.message = getString(messageResId);
         this.okText = getString(okTextResId);
@@ -122,6 +130,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(CharSequence title, CharSequence message, CharSequence okText, CharSequence cancelText, CharSequence otherText, String inputText) {
+        cancelable = DialogX.cancelable;
         this.title = title;
         this.message = message;
         this.okText = okText;
@@ -131,6 +140,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public InputDialog(int titleResId, int messageResId, int okTextResId, int cancelTextResId, int otherTextResId, int inputTextResId) {
+        cancelable = DialogX.cancelable;
         this.title = getString(titleResId);
         this.message = getString(messageResId);
         this.okText = getString(okTextResId);

+ 9 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageDialog.java

@@ -216,6 +216,15 @@ public class MessageDialog extends BaseDialog {
         }
         
         public void init() {
+            if (titleTextInfo == null) titleTextInfo = DialogX.titleTextInfo;
+            if (messageTextInfo == null) messageTextInfo = DialogX.messageTextInfo;
+            if (okTextInfo == null) okTextInfo = DialogX.okButtonTextInfo;
+            if (okTextInfo == null) okTextInfo = DialogX.buttonTextInfo;
+            if (cancelTextInfo == null) cancelTextInfo = DialogX.buttonTextInfo;
+            if (otherTextInfo == null) otherTextInfo = DialogX.buttonTextInfo;
+            if (inputInfo == null) inputInfo = DialogX.inputInfo;
+            if (DialogX.backgroundColor != -1) setBackgroundColor(DialogX.backgroundColor);
+            
             txtDialogTitle.getPaint().setFakeBoldText(true);
             btnSelectNegative.getPaint().setFakeBoldText(true);
             btnSelectPositive.getPaint().setFakeBoldText(true);

+ 4 - 15
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java

@@ -76,73 +76,61 @@ public class PopTip extends BaseDialog {
     }
     
     public PopTip(OnBindView<PopTip> onBindView) {
-        super();
         this.onBindView = onBindView;
     }
     
     public PopTip(CharSequence message) {
-        super();
         this.message = message;
     }
     
     public PopTip(int messageResId) {
-        super();
         this.message = getString(messageResId);
     }
     
     public PopTip(int iconResId, CharSequence message) {
-        super();
         this.iconResId = iconResId;
         this.message = message;
     }
     
     public PopTip(int iconResId, CharSequence message, CharSequence buttonText) {
-        super();
         this.iconResId = iconResId;
         this.message = message;
         this.buttonText = buttonText;
     }
     
     public PopTip(int iconResId, int messageResId, int buttonTextResId) {
-        super();
         this.iconResId = iconResId;
         this.message = getString(messageResId);
         this.buttonText = getString(buttonTextResId);
     }
     
     public PopTip(CharSequence message, CharSequence buttonText) {
-        super();
         this.message = message;
         this.buttonText = buttonText;
     }
     
     public PopTip(int messageResId, int buttonTextResId) {
-        super();
         this.message = getString(messageResId);
         this.buttonText = getString(buttonTextResId);
     }
     
     public PopTip(CharSequence message, OnBindView<PopTip> onBindView) {
-        super();
         this.message = message;
         this.onBindView = onBindView;
     }
     
     public PopTip(int messageResId, OnBindView<PopTip> onBindView) {
-        super();
         this.message = getString(messageResId);
         this.onBindView = onBindView;
     }
     
     public PopTip(int iconResId, CharSequence message, OnBindView<PopTip> onBindView) {
-        super();
         this.iconResId = iconResId;
         this.message = message;
         this.onBindView = onBindView;
     }
     
     public PopTip(int iconResId, CharSequence message, CharSequence buttonText, OnBindView<PopTip> onBindView) {
-        super();
         this.iconResId = iconResId;
         this.message = message;
         this.buttonText = buttonText;
@@ -150,7 +138,6 @@ public class PopTip extends BaseDialog {
     }
     
     public PopTip(int iconResId, int messageResId, int buttonTextResId, OnBindView<PopTip> onBindView) {
-        super();
         this.iconResId = iconResId;
         this.message = getString(messageResId);
         this.buttonText = getString(buttonTextResId);
@@ -158,14 +145,12 @@ public class PopTip extends BaseDialog {
     }
     
     public PopTip(CharSequence message, CharSequence buttonText, OnBindView<PopTip> onBindView) {
-        super();
         this.message = message;
         this.buttonText = buttonText;
         this.onBindView = onBindView;
     }
     
     public PopTip(int messageResId, int buttonTextResId, OnBindView<PopTip> onBindView) {
-        super();
         this.message = getString(messageResId);
         this.buttonText = getString(buttonTextResId);
         this.onBindView = onBindView;
@@ -333,6 +318,10 @@ public class PopTip extends BaseDialog {
         
         @Override
         public void init() {
+            if (messageTextInfo == null) messageTextInfo = DialogX.popTextInfo;
+            if (buttonTextInfo == null) buttonTextInfo = DialogX.buttonTextInfo;
+            if (DialogX.backgroundColor != -1) setBackgroundColor(DialogX.backgroundColor);
+            
             boxRoot.setFocusable(false);
             boxRoot.setFocusableInTouchMode(false);
             boxRoot.setAutoUnsafePlacePadding(false);

+ 24 - 11
DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java

@@ -14,6 +14,7 @@ import android.widget.TextView;
 import androidx.annotation.ColorInt;
 import androidx.annotation.ColorRes;
 
+import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.impl.AnimatorListenerEndCallBack;
 import com.kongzue.dialogx.interfaces.BaseDialog;
@@ -21,6 +22,8 @@ import com.kongzue.dialogx.interfaces.DialogConvertViewInterface;
 import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 import com.kongzue.dialogx.interfaces.OnBackPressedListener;
 import com.kongzue.dialogx.interfaces.OnBindView;
+import com.kongzue.dialogx.interfaces.ProgressViewInterface;
+import com.kongzue.dialogx.util.TextInfo;
 import com.kongzue.dialogx.util.views.BlurView;
 import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
 import com.kongzue.dialogx.util.views.MaxRelativeLayout;
@@ -51,13 +54,14 @@ public class WaitDialog extends BaseDialog {
     protected long tipShowDuration = 1500;
     protected float waitProgress = -1;
     protected int showType = -1;        //-1:Waitdialog 状态标示符,其余为 TipDialog 状态标示
+    protected TextInfo messageTextInfo;
     
     private DialogLifecycleCallback<WaitDialog> dialogLifecycleCallback;
     
     protected WaitDialog() {
         super();
         me = new WeakReference<>(this);
-        cancelable = false;
+        cancelable = DialogX.cancelableTipDialog;
     }
     
     public static WaitDialog show(CharSequence message) {
@@ -167,7 +171,7 @@ public class WaitDialog extends BaseDialog {
         MaxRelativeLayout bkg;
         BlurView blurView;
         RelativeLayout boxProgress;
-        ProgressView progressView;
+        ProgressViewInterface progressView;
         RelativeLayout boxCustomView;
         TextView txtInfo;
         
@@ -176,7 +180,12 @@ public class WaitDialog extends BaseDialog {
             bkg = convertView.findViewById(R.id.bkg);
             blurView = convertView.findViewById(R.id.blurView);
             boxProgress = convertView.findViewById(R.id.box_progress);
-            progressView = convertView.findViewById(R.id.progressView);
+            View progressViewCache = (View) style.overrideWaitTipRes().overrideWaitView(getContext(), isLightTheme());
+            if (progressViewCache == null) {
+                progressViewCache = new ProgressView(getContext());
+            }
+            progressView = (ProgressViewInterface) progressViewCache;
+            boxProgress.addView(progressViewCache, new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
             boxCustomView = convertView.findViewById(R.id.box_customView);
             txtInfo = convertView.findViewById(R.id.txt_info);
             init();
@@ -184,9 +193,10 @@ public class WaitDialog extends BaseDialog {
         }
         
         public void init() {
+            if (messageTextInfo == null) messageTextInfo = DialogX.tipTextInfo;
+            
             blurView.setRadiusPx(dip2px(15));
             boxRoot.setClickable(true);
-            //txtInfo.getPaint().setFakeBoldText(true);
             
             boxRoot.setOnLifecycleCallBack(new DialogXBaseRelativeLayout.OnLifecycleCallBack() {
                 @Override
@@ -221,7 +231,7 @@ public class WaitDialog extends BaseDialog {
             
             if (readyTipType != null) {
                 progressView.noLoading();
-                progressView.postDelayed(new Runnable() {
+                ((View) progressView).postDelayed(new Runnable() {
                     @Override
                     public void run() {
                         showTip(readyTipType);
@@ -278,6 +288,7 @@ public class WaitDialog extends BaseDialog {
             }
             
             showText(txtInfo, message);
+            useTextInfo(txtInfo, messageTextInfo);
             
             if (onBindView != null && onBindView.getCustomView() != null) {
                 boxCustomView.removeView(onBindView.getCustomView());
@@ -299,12 +310,12 @@ public class WaitDialog extends BaseDialog {
                 @Override
                 public void run() {
                     if (v != null) v.setEnabled(false);
-    
+                    
                     int exitAnimResId = R.anim.anim_dialogx_default_exit;
                     Animation enterAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResId);
                     enterAnim.setInterpolator(new AccelerateInterpolator());
                     bkg.startAnimation(enterAnim);
-    
+                    
                     boxRoot.animate().setDuration(300).alpha(0f).setInterpolator(new AccelerateInterpolator()).setDuration(enterAnim.getDuration()).setListener(new AnimatorListenerEndCallBack() {
                         @Override
                         public void onAnimationEnd(Animator animation) {
@@ -332,14 +343,16 @@ public class WaitDialog extends BaseDialog {
                     progressView.error();
                     break;
             }
+            
+            //此事件是在完成衔接动画绘制后执行的逻辑
             progressView.whenShowTick(new Runnable() {
                 @Override
                 public void run() {
                     refreshView();
-                    progressView.postDelayed(new Runnable() {
+                    ((View) progressView).postDelayed(new Runnable() {
                         @Override
                         public void run() {
-                            if (showType>-1) {
+                            if (showType > -1) {
                                 doDismiss(null);
                             }
                         }
@@ -409,8 +422,8 @@ public class WaitDialog extends BaseDialog {
      * 用于从 WaitDialog 到 TipDialog 的消息设置
      * 此方法不会立即执行,而是等到动画衔接完成后由事件设置
      *
-     * @param message   消息
-     * @return          me
+     * @param message 消息
+     * @return me
      */
     protected WaitDialog preMessage(CharSequence message) {
         me().message = message;

+ 1 - 0
DialogX/src/main/java/com/kongzue/dialogx/interfaces/BaseDialog.java

@@ -94,6 +94,7 @@ public class BaseDialog {
     protected int backgroundColor = -1;
     
     public BaseDialog() {
+        cancelable = DialogX.cancelable;
         style = DialogX.globalStyle;
         theme = DialogX.globalTheme;
         autoShowInputKeyboard = DialogX.autoShowInputKeyboard;

+ 9 - 0
DialogX/src/main/java/com/kongzue/dialogx/style/MaterialStyle.java

@@ -1,7 +1,11 @@
 package com.kongzue.dialogx.style;
 
+import android.content.Context;
+
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.interfaces.DialogXStyle;
+import com.kongzue.dialogx.interfaces.ProgressViewInterface;
+import com.kongzue.dialogx.util.views.ProgressView;
 
 /**
  * @author: Kongzue
@@ -116,6 +120,11 @@ public class MaterialStyle implements DialogXStyle {
             public int overrideTextColorRes(boolean light) {
                 return light ? R.color.white : R.color.black;
             }
+    
+            @Override
+            public ProgressViewInterface overrideWaitView(Context context, boolean light) {
+                return new ProgressView(context);
+            }
         };
     }
 

+ 24 - 2
DialogX/src/main/java/com/kongzue/dialogx/util/NormalMenuArrayAdapter.java

@@ -2,8 +2,10 @@ package com.kongzue.dialogx.util;
 
 import android.content.Context;
 import android.content.res.ColorStateList;
+import android.graphics.Typeface;
 import android.graphics.drawable.StateListDrawable;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -13,6 +15,7 @@ import android.widget.ImageView;
 import android.widget.SimpleAdapter;
 import android.widget.TextView;
 
+import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.dialogs.BottomMenu;
 
@@ -131,10 +134,13 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
         if (null != text) {
             viewHolder.txtDialogxMenuText.setText(text);
             viewHolder.txtDialogxMenuText.setTextColor(context.getResources().getColor(textColor));
+            if (DialogX.menuTextInfo != null) {
+                useTextInfo(viewHolder.txtDialogxMenuText, DialogX.menuTextInfo);
+            }
             if (viewHolder.imgDialogxMenuSelection != null) {
-                if (bottomMenu.getStyle().overrideBottomDialogRes()!=null && bottomMenu.getStyle().overrideBottomDialogRes().selectionImageTint(bottomMenu.isLightTheme())) {
+                if (bottomMenu.getStyle().overrideBottomDialogRes() != null && bottomMenu.getStyle().overrideBottomDialogRes().selectionImageTint(bottomMenu.isLightTheme())) {
                     viewHolder.imgDialogxMenuSelection.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(textColor)));
-                }else{
+                } else {
                     viewHolder.imgDialogxMenuSelection.setImageTintList(null);
                 }
             }
@@ -160,4 +166,20 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
         
         return convertView;
     }
+    
+    protected void useTextInfo(TextView textView, TextInfo textInfo) {
+        if (textInfo == null) return;
+        if (textView == null) return;
+        if (textInfo.getFontSize() > 0) {
+            textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textInfo.getFontSize());
+        }
+        if (textInfo.getFontColor() != 1) {
+            textView.setTextColor(textInfo.getFontColor());
+        }
+        if (textInfo.getGravity() != -1) {
+            textView.setGravity(textInfo.getGravity());
+        }
+        Typeface font = Typeface.create(Typeface.SANS_SERIF, textInfo.isBold() ? Typeface.BOLD : Typeface.NORMAL);
+        textView.setTypeface(font);
+    }
 }

+ 1 - 1
DialogX/src/main/java/com/kongzue/dialogx/util/views/BlurView.java

@@ -443,7 +443,7 @@ public class BlurView extends View {
     public static boolean DEBUGMODE = false;
     
     static boolean isDebug() {
-        return DialogX.DEBUGMODE;
+        return DEBUGMODE && DialogX.DEBUGMODE;
     }
     
     public static void log(Object o) {

+ 10 - 3
DialogX/src/main/java/com/kongzue/dialogx/util/views/ProgressView.java

@@ -3,6 +3,7 @@ package com.kongzue.dialogx.util.views;
 import android.animation.TimeInterpolator;
 import android.animation.ValueAnimator;
 import android.content.Context;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -19,6 +20,7 @@ import android.view.animation.LinearInterpolator;
 import androidx.annotation.Nullable;
 
 import com.kongzue.dialogx.R;
+import com.kongzue.dialogx.interfaces.ProgressViewInterface;
 
 /**
  * @author: Kongzue
@@ -28,7 +30,7 @@ import com.kongzue.dialogx.R;
  * @createTime: 2020/9/27 16:16
  * @license: Apache License 2.0
  */
-public class ProgressView extends View {
+public class ProgressView extends View implements ProgressViewInterface {
     
     public static final int STATUS_LOADING = 0;
     public static final int STATUS_SUCCESS = 1;
@@ -38,7 +40,7 @@ public class ProgressView extends View {
     
     private int status = STATUS_LOADING;
     
-    private int width = 5;
+    private int width = dip2px(2);
     private int color = Color.WHITE;
     
     public ProgressView(Context context) {
@@ -85,7 +87,7 @@ public class ProgressView extends View {
             isInited = true;
             if (attrs != null) {
                 TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ProgressView);
-                width = a.getDimensionPixelSize(R.styleable.ProgressView_progressStrokeWidth, 5);
+                width = a.getDimensionPixelSize(R.styleable.ProgressView_progressStrokeWidth, dip2px(2));
                 color = a.getDimensionPixelSize(R.styleable.ProgressView_progressStrokeColor, color);
                 
                 a.recycle();
@@ -464,4 +466,9 @@ public class ProgressView extends View {
     public void noLoading() {
         noShowLoading = true;
     }
+    
+    private int dip2px(float dpValue) {
+        final float scale = Resources.getSystem().getDisplayMetrics().density;
+        return (int) (dpValue * scale + 0.5f);
+    }
 }

+ 1 - 10
DialogX/src/main/res/layout/layout_dialogx_wait.xml

@@ -32,16 +32,7 @@
             <RelativeLayout
                 android:id="@+id/box_progress"
                 android:layout_width="65dp"
-                android:layout_height="65dp">
-
-                <com.kongzue.dialogx.util.views.ProgressView
-                    android:id="@+id/progressView"
-                    android:layout_width="65dp"
-                    android:layout_height="65dp"
-                    android:layout_centerInParent="true"
-                    app:progressStrokeWidth="2dp" />
-
-            </RelativeLayout>
+                android:layout_height="65dp"/>
 
             <RelativeLayout
                 android:id="@+id/box_customView"

+ 7 - 0
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java

@@ -1,8 +1,10 @@
 package com.kongzue.dialogx.style;
 
+import android.content.Context;
 import android.content.res.Resources;
 
 import com.kongzue.dialogx.interfaces.DialogXStyle;
+import com.kongzue.dialogx.interfaces.ProgressViewInterface;
 import com.kongzue.dialogx.iostheme.R;
 
 /**
@@ -142,6 +144,11 @@ public class IOSStyle implements DialogXStyle {
             public int overrideTextColorRes(boolean light) {
                 return light ? R.color.white : R.color.black;
             }
+    
+            @Override
+            public ProgressViewInterface overrideWaitView(Context context, boolean light) {
+                return null;
+            }
         };
     }
     

+ 1 - 0
DialogXInterface/build.gradle

@@ -2,6 +2,7 @@ apply plugin: 'java-library'
 
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar'])
+    implementation files('libs\\android.jar')
 }
 
 sourceCompatibility = "1.7"

BIN
DialogXInterface/libs/android.jar


+ 4 - 0
DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/DialogXStyle.java

@@ -1,5 +1,7 @@
 package com.kongzue.dialogx.interfaces;
 
+import android.content.Context;
+
 public interface DialogXStyle {
     
     int styleVer = 1;
@@ -70,6 +72,8 @@ public interface DialogXStyle {
         int overrideBackgroundColorRes(boolean light);
         
         int overrideTextColorRes(boolean light);
+    
+        ProgressViewInterface overrideWaitView(Context context, boolean light);
     }
     
     interface BottomDialogRes {

+ 35 - 0
DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/ProgressViewInterface.java

@@ -0,0 +1,35 @@
+package com.kongzue.dialogx.interfaces;
+
+/**
+ * @author: Kongzue
+ * @github: https://github.com/kongzue/
+ * @homepage: http://kongzue.com/
+ * @mail: myzcxhh@live.cn
+ * @createTime: 2020/11/3 20:39
+ */
+public interface ProgressViewInterface {
+    
+    //停止加载动画
+    void noLoading();
+    
+    //切换至完成状态
+    void success();
+    
+    //切换至警告状态
+    void warning();
+    
+    //切换至错误状态
+    void error();
+    
+    //切换至进度(取值 0f-1f)
+    void progress(float progress);
+    
+    //切换至加载状态
+    void loading();
+    
+    //不同状态切换时,衔接动画完成后执行
+    ProgressViewInterface whenShowTick(Runnable runnable);
+    
+    //设置颜色
+    ProgressViewInterface setColor(int color);
+}

+ 8 - 0
DialogXKongzueStyle/src/main/java/com/kongzue/dialogx/style/KongzueStyle.java

@@ -1,6 +1,9 @@
 package com.kongzue.dialogx.style;
 
+import android.content.Context;
+
 import com.kongzue.dialogx.interfaces.DialogXStyle;
+import com.kongzue.dialogx.interfaces.ProgressViewInterface;
 import com.kongzue.dialogx.kongzuetheme.R;
 
 /**
@@ -86,6 +89,11 @@ public class KongzueStyle implements DialogXStyle {
             public int overrideTextColorRes(boolean light) {
                 return light ? R.color.white : R.color.black;
             }
+    
+            @Override
+            public ProgressViewInterface overrideWaitView(Context context, boolean light) {
+                return null;
+            }
         };
     }
     

+ 8 - 0
DialogXMIUIStyle/src/main/java/com/kongzue/dialogx/style/MIUIStyle.java

@@ -1,6 +1,9 @@
 package com.kongzue.dialogx.style;
 
+import android.content.Context;
+
 import com.kongzue.dialogx.interfaces.DialogXStyle;
+import com.kongzue.dialogx.interfaces.ProgressViewInterface;
 import com.kongzue.dialogx.miuistyle.R;
 
 /**
@@ -86,6 +89,11 @@ public class MIUIStyle implements DialogXStyle {
             public int overrideTextColorRes(boolean light) {
                 return light ? R.color.white : R.color.black;
             }
+    
+            @Override
+            public ProgressViewInterface overrideWaitView(Context context, boolean light) {
+                return null;
+            }
         };
     }
     

+ 1 - 0
README.md

@@ -26,6 +26,7 @@
 - DialogX 采用全新的实现方式,**不依赖** AlertDialog、Window 或 Fragment 实现,更加轻便快捷。
 - DialogX 的启动与线程无关,你可以**在任意线程**启动 DialogX 而它都将自动在 UI 线程运行。
 - DialogX 的启动**无需 context 参数**,默认提供静态方法一句代码实现对话框的启动,使用更加方便。
+- 更自由,开发者可以轻松定制对话框中任何组件的样式,包括文本样式、按钮文字样式、菜单文本样式、输入文本样式,大到标题,小到提示消息都可以根据需要随意修改。
 - DialogX 采用**主题分离设计**,默认自带 Material 主题,可选引入 IOS、Kongzue 等其他风格主题,大大减小 App 体积,同时提供了主题接口,如有定制需求完全可以自行实现一套私有主题。
 - 更低的耦合度,更少的问题,DialogX 可以在对话框正在**运行的过程中随意关闭 Activity** ,而无需担心以往 AlertDialog 等组件会引发的 WindowLeaked 错误。
 - 更流畅的体验,DialogX 的动画效果更加丰富,对话框启动动画采用**非线性动画**实现,更自带连贯的等待提示到完成错误动画过渡效果,让你的 APP 更具动感。

BIN
app/libs/DialogXIOSStyle-release.aar


BIN
app/libs/DialogXKongzueStyle-release.aar


BIN
app/libs/DialogXMIUIStyle-release.aar