Jelajahi Sumber

0.0.37.beta2

kongzue 4 tahun lalu
induk
melakukan
c0d20b2684

+ 32 - 12
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomDialog.java

@@ -45,6 +45,8 @@ import com.kongzue.dialogx.util.views.MaxRelativeLayout;
  */
 public class BottomDialog extends BaseDialog {
     
+    public static int overrideEnterDuration = -1;
+    public static int overrideExitDuration = -1;
     public static BOOLEAN overrideCancelable;
     protected OnBindView<BottomDialog> onBindView;
     protected CharSequence title;
@@ -298,7 +300,6 @@ public class BottomDialog extends BaseDialog {
                         RelativeLayout.LayoutParams cancelButtonLp = new RelativeLayout.LayoutParams(boxCancel.getWidth(), boxCancel.getHeight());
                         cancelBlurView.setOverlayColor(backgroundColor == -1 ? blurFrontColor : backgroundColor);
                         cancelBlurView.setTag("blurView");
-                        cancelBlurView.setUseBlur(false);
                         cancelBlurView.setRadiusPx(style.messageDialogBlurSettings().blurBackgroundRoundRadiusPx());
                         boxCancel.addView(cancelBlurView, 0, cancelButtonLp);
                     }
@@ -384,20 +385,25 @@ public class BottomDialog extends BaseDialog {
             boxRoot.post(new Runnable() {
                 @Override
                 public void run() {
-                    boxRoot.animate()
-                            .setDuration(enterAnimDuration == -1 ? 300 : enterAnimDuration)
-                            .alpha(1f)
-                            .setInterpolator(new DecelerateInterpolator())
-                            .setListener(null);
-                    
                     Animation enterAnim = AnimationUtils.loadAnimation(getContext(), R.anim.anim_dialogx_bottom_enter);
-                    if (enterAnimDuration != -1) {
-                        enterAnim.setDuration(enterAnimDuration);
+                    long enterAnimDurationTemp = enterAnim.getDuration();
+                    if (overrideEnterDuration >= 0) {
+                        enterAnimDurationTemp = overrideEnterDuration;
+                    }
+                    if (enterAnimDuration >= 0) {
+                        enterAnimDurationTemp = enterAnimDuration;
                     }
+                    enterAnim.setDuration(enterAnimDurationTemp);
                     enterAnim.setInterpolator(new DecelerateInterpolator(2f));
                     bkg.startAnimation(enterAnim);
                     
                     bkg.setY(bkgEnterAimY);
+                    
+                    boxRoot.animate()
+                            .setDuration(enterAnimDurationTemp)
+                            .alpha(1f)
+                            .setInterpolator(new DecelerateInterpolator())
+                            .setListener(null);
                 }
             });
         }
@@ -498,13 +504,20 @@ public class BottomDialog extends BaseDialog {
                 boxContent.getViewTreeObserver().removeOnGlobalLayoutListener(onContentViewLayoutChangeListener);
             
             ObjectAnimator exitAnim = ObjectAnimator.ofFloat(bkg, "y", bkg.getY(), boxBkg.getHeight());
-            exitAnim.setDuration(exitAnimDuration == -1 ? 300 : exitAnimDuration);
+            long exitAnimDurationTemp = 300;
+            if (overrideExitDuration >= 0) {
+                exitAnimDurationTemp = overrideExitDuration;
+            }
+            if (exitAnimDuration >= 0) {
+                exitAnimDurationTemp = exitAnimDuration;
+            }
+            exitAnim.setDuration(exitAnimDurationTemp);
             exitAnim.start();
             
             boxRoot.animate()
                     .alpha(0f)
                     .setInterpolator(new AccelerateInterpolator())
-                    .setDuration(exitAnim.getDuration())
+                    .setDuration(exitAnimDurationTemp)
                     .setListener(new AnimatorListenerEndCallBack() {
                         @Override
                         public void onAnimationEnd(Animator animation) {
@@ -517,8 +530,15 @@ public class BottomDialog extends BaseDialog {
             if (isCancelable()) {
                 doDismiss(boxRoot);
             } else {
+                long exitAnimDurationTemp = 300;
+                if (overrideExitDuration >= 0) {
+                    exitAnimDurationTemp = overrideExitDuration;
+                }
+                if (exitAnimDuration >= 0) {
+                    exitAnimDurationTemp = exitAnimDuration;
+                }
                 ObjectAnimator enterAnim = ObjectAnimator.ofFloat(bkg, "y", bkg.getY(), bkgEnterAimY);
-                enterAnim.setDuration(exitAnimDuration == -1 ? 300 : exitAnimDuration);
+                enterAnim.setDuration(exitAnimDurationTemp);
                 enterAnim.start();
             }
         }

+ 85 - 42
DialogX/src/main/java/com/kongzue/dialogx/dialogs/CustomDialog.java

@@ -1,6 +1,7 @@
 package com.kongzue.dialogx.dialogs;
 
 import android.app.Activity;
+import android.content.Context;
 import android.content.res.Configuration;
 import android.graphics.Color;
 import android.view.View;
@@ -31,6 +32,12 @@ import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
  */
 public class CustomDialog extends BaseDialog {
     
+    public static int overrideEnterDuration = -1;
+    public static int overrideExitDuration = -1;
+    public static int overrideEnterAnimRes = 0;
+    public static int overrideExitAnimRes = 0;
+    public static int overrideMaskEnterAnimRes = R.anim.anim_dialogx_default_alpha_enter;
+    public static int overrideMaskExitAnimRes = R.anim.anim_dialogx_default_exit;
     public static BOOLEAN overrideCancelable;
     protected OnBindView<CustomDialog> onBindView;
     protected DialogLifecycleCallback<CustomDialog> dialogLifecycleCallback;
@@ -138,38 +145,10 @@ public class CustomDialog extends BaseDialog {
                 }
             });
             
-            RelativeLayout.LayoutParams rlp;
-            rlp = ((RelativeLayout.LayoutParams) boxCustom.getLayoutParams());
-            switch (align) {
-                case TOP:
-                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
-                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-                    break;
-                case BOTTOM:
-                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
-                    rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-                    break;
-                case CENTER:
-                    rlp.removeRule(RelativeLayout.ALIGN_PARENT_TOP);
-                    rlp.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-                    rlp.addRule(RelativeLayout.CENTER_IN_PARENT);
-                    break;
-                case LEFT:
-                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
-                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-                    rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
-                    break;
-                case RIGHT:
-                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
-                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-                    rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
-                    break;
-            }
-            boxCustom.setLayoutParams(rlp);
-            
             boxRoot.post(new Runnable() {
                 @Override
                 public void run() {
+                    Animation enterAnim;
                     if (enterAnimResId == R.anim.anim_dialogx_default_enter && exitAnimResId == R.anim.anim_dialogx_default_exit) {
                         switch (align) {
                             case TOP:
@@ -189,25 +168,71 @@ public class CustomDialog extends BaseDialog {
                                 exitAnimResId = R.anim.anim_dialogx_right_exit;
                                 break;
                         }
-                    }
-                    Animation enterAnim;
-                    if (enterAnimResId == R.anim.anim_dialogx_default_enter) {
-                        enterAnim = AnimationUtils.loadAnimation(getContext(), R.anim.anim_dialogx_default_enter);
+                        enterAnim = AnimationUtils.loadAnimation(getContext(), enterAnimResId);
                         enterAnim.setInterpolator(new DecelerateInterpolator(2f));
                     } else {
-                        enterAnim = AnimationUtils.loadAnimation(getContext(), enterAnimResId);
+                        int enterAnimResIdTemp = R.anim.anim_dialogx_default_enter;
+                        if (overrideEnterAnimRes != 0) {
+                            enterAnimResIdTemp = overrideEnterAnimRes;
+                        }
+                        if (enterAnimResId != 0) {
+                            enterAnimResIdTemp = enterAnimResId;
+                        }
+                        enterAnim = AnimationUtils.loadAnimation(getContext(), enterAnimResIdTemp);
                     }
-                    if (enterAnimDuration != -1) {
-                        enterAnim.setDuration(enterAnimDuration);
+                    long enterAnimDurationTemp = enterAnim.getDuration();
+                    if (overrideEnterDuration >= 0) {
+                        enterAnimDurationTemp = overrideEnterDuration;
                     }
+                    if (enterAnimDuration >= 0) {
+                        enterAnimDurationTemp = enterAnimDuration;
+                    }
+                    enterAnim.setDuration(enterAnimDurationTemp);
                     boxCustom.setVisibility(View.VISIBLE);
                     boxCustom.startAnimation(enterAnim);
+                    
+                    boxRoot.setBackgroundColor(maskColor);
+                    if (overrideMaskEnterAnimRes != 0) {
+                        Animation maskEnterAnim = AnimationUtils.loadAnimation(getContext(), overrideMaskEnterAnimRes);
+                        maskEnterAnim.setInterpolator(new DecelerateInterpolator(2f));
+                        maskEnterAnim.setDuration(enterAnimDurationTemp);
+                        boxRoot.startAnimation(maskEnterAnim);
+                    }
                 }
             });
         }
         
         @Override
         public void refreshView() {
+            RelativeLayout.LayoutParams rlp;
+            rlp = ((RelativeLayout.LayoutParams) boxCustom.getLayoutParams());
+            switch (align) {
+                case TOP:
+                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
+                    break;
+                case BOTTOM:
+                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
+                    break;
+                case CENTER:
+                    rlp.removeRule(RelativeLayout.ALIGN_PARENT_TOP);
+                    rlp.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
+                    rlp.addRule(RelativeLayout.CENTER_IN_PARENT);
+                    break;
+                case LEFT:
+                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
+                    break;
+                case RIGHT:
+                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
+                    break;
+            }
+            boxCustom.setLayoutParams(rlp);
+            
             boxRoot.setAutoUnsafePlacePadding(autoUnsafePlacePadding);
             if (isCancelable()) {
                 boxRoot.setOnClickListener(new View.OnClickListener() {
@@ -220,8 +245,6 @@ public class CustomDialog extends BaseDialog {
                 boxRoot.setOnClickListener(null);
             }
             
-            boxRoot.setBackgroundColor(maskColor);
-            
             if (onBindView != null && onBindView.getCustomView() != null) {
                 onBindView.bindParent(boxCustom, me);
             }
@@ -231,11 +254,23 @@ public class CustomDialog extends BaseDialog {
         public void doDismiss(View v) {
             if (v != null) v.setEnabled(false);
             
-            Animation exitAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResId);
-            if (exitAnimDuration != -1) {
-                exitAnim.setDuration(exitAnimDuration);
+            int exitAnimResIdTemp = R.anim.anim_dialogx_default_exit;
+            if (overrideExitAnimRes != 0) {
+                exitAnimResIdTemp = overrideExitAnimRes;
             }
-            boxCustom.startAnimation(exitAnim);
+            if (exitAnimResId != 0) {
+                exitAnimResIdTemp = exitAnimResId;
+            }
+            Animation exitAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResIdTemp);
+            
+            long exitAnimDurationTemp = exitAnim.getDuration();
+            if (overrideExitDuration >= 0) {
+                exitAnimDurationTemp = overrideExitDuration;
+            }
+            if (exitAnimDuration >= 0) {
+                exitAnimDurationTemp = exitAnimDuration;
+            }
+            exitAnim.setDuration(exitAnimDurationTemp);
             exitAnim.setAnimationListener(new Animation.AnimationListener() {
                 @Override
                 public void onAnimationStart(Animation animation) {
@@ -252,6 +287,14 @@ public class CustomDialog extends BaseDialog {
                 
                 }
             });
+            boxCustom.startAnimation(exitAnim);
+            
+            if (overrideMaskExitAnimRes != 0) {
+                Animation maskExitAnim = AnimationUtils.loadAnimation(getContext(), overrideMaskExitAnimRes);
+                maskExitAnim.setDuration(exitAnimDurationTemp);
+                maskExitAnim.setInterpolator(new DecelerateInterpolator(2f));
+                boxRoot.startAnimation(maskExitAnim);
+            }
         }
     }
     

+ 35 - 8
DialogX/src/main/java/com/kongzue/dialogx/dialogs/FullScreenDialog.java

@@ -38,7 +38,10 @@ import com.kongzue.dialogx.util.views.MaxRelativeLayout;
  */
 public class FullScreenDialog extends BaseDialog {
     
+    public static int overrideEnterDuration = -1;
+    public static int overrideExitDuration = -1;
     public static BOOLEAN overrideCancelable;
+    
     protected OnBindView<FullScreenDialog> onBindView;
     protected BOOLEAN privateCancelable;
     
@@ -105,6 +108,7 @@ public class FullScreenDialog extends BaseDialog {
         }
         
         public float bkgEnterAimY = -1;
+        private long enterAnimDurationTemp = 300;
         
         @Override
         public void init() {
@@ -141,20 +145,27 @@ public class FullScreenDialog extends BaseDialog {
             
             fullScreenDialogTouchEventInterceptor = new FullScreenDialogTouchEventInterceptor(me, dialogImpl);
             
+            enterAnimDurationTemp = 300;
+            if (overrideEnterDuration >= 0) {
+                enterAnimDurationTemp = overrideEnterDuration;
+            }
+            if (enterAnimDuration >= 0) {
+                enterAnimDurationTemp = enterAnimDuration;
+            }
+            
             boxRoot.post(new Runnable() {
                 @Override
                 public void run() {
                     bkgEnterAimY = boxRoot.getSafeHeight() - boxCustom.getHeight();
                     if (bkgEnterAimY < 0) bkgEnterAimY = 0;
-                    
                     boxRoot.animate()
-                            .setDuration(enterAnimDuration == -1 ? 300 : enterAnimDuration)
+                            .setDuration(enterAnimDurationTemp)
                             .alpha(1f)
                             .setInterpolator(new DecelerateInterpolator())
                             .setListener(null);
                     
                     ObjectAnimator exitAnim = ObjectAnimator.ofFloat(bkg, "y", boxRoot.getHeight(), bkgEnterAimY);
-                    exitAnim.setDuration(enterAnimDuration == -1 ? 300 : enterAnimDuration);
+                    exitAnim.setDuration(enterAnimDurationTemp);
                     exitAnim.start();
                 }
             });
@@ -176,7 +187,7 @@ public class FullScreenDialog extends BaseDialog {
                 public void onChange(Rect unsafeRect) {
                     if (unsafeRect.bottom > dip2px(100)) {
                         ObjectAnimator enterAnim = ObjectAnimator.ofFloat(bkg, "y", bkg.getY(), 0);
-                        enterAnim.setDuration(enterAnimDuration == -1 ? 300 : enterAnimDuration);
+                        enterAnim.setDuration(enterAnimDurationTemp);
                         enterAnim.start();
                     }
                 }
@@ -200,7 +211,7 @@ public class FullScreenDialog extends BaseDialog {
                 boxRoot.setOnClickListener(null);
             }
             
-            if (onBindView != null && onBindView.getCustomView() != null){
+            if (onBindView != null && onBindView.getCustomView() != null) {
                 onBindView.bindParent(boxCustom, me);
             }
             
@@ -211,14 +222,22 @@ public class FullScreenDialog extends BaseDialog {
         public void doDismiss(View v) {
             if (v != null) v.setEnabled(false);
             
+            long exitAnimDurationTemp = 300;
+            if (overrideExitDuration >= 0) {
+                exitAnimDurationTemp = overrideExitDuration;
+            }
+            if (exitAnimDuration >= 0) {
+                exitAnimDurationTemp = exitAnimDuration;
+            }
+            
             ObjectAnimator exitAnim = ObjectAnimator.ofFloat(bkg, "y", bkg.getY(), boxBkg.getHeight());
-            exitAnim.setDuration(exitAnimDuration == -1 ? 300 : exitAnimDuration);
+            exitAnim.setDuration(exitAnimDurationTemp);
             exitAnim.start();
             
             boxRoot.animate()
                     .alpha(0f)
                     .setInterpolator(new AccelerateInterpolator())
-                    .setDuration(exitAnim.getDuration())
+                    .setDuration(exitAnimDurationTemp)
                     .setListener(new AnimatorListenerEndCallBack() {
                         @Override
                         public void onAnimationEnd(Animator animation) {
@@ -231,8 +250,16 @@ public class FullScreenDialog extends BaseDialog {
             if (isCancelable()) {
                 doDismiss(boxRoot);
             } else {
+                long exitAnimDurationTemp = 300;
+                if (overrideExitDuration >= 0) {
+                    exitAnimDurationTemp = overrideExitDuration;
+                }
+                if (exitAnimDuration >= 0) {
+                    exitAnimDurationTemp = exitAnimDuration;
+                }
+                
                 ObjectAnimator enterAnim = ObjectAnimator.ofFloat(bkg, "y", bkg.getY(), bkgEnterAimY);
-                enterAnim.setDuration(exitAnimDuration == -1 ? 300 : exitAnimDuration);
+                enterAnim.setDuration(exitAnimDurationTemp);
                 enterAnim.start();
             }
         }

+ 25 - 5
DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageDialog.java

@@ -50,6 +50,10 @@ import com.kongzue.dialogx.util.TextInfo;
  */
 public class MessageDialog extends BaseDialog {
     
+    public static int overrideEnterDuration = -1;
+    public static int overrideExitDuration = -1;
+    public static int overrideEnterAnimRes = 0;
+    public static int overrideExitAnimRes = 0;
     public static BOOLEAN overrideCancelable;
     protected OnBindView<MessageDialog> onBindView;
     protected MessageDialog me = this;
@@ -277,15 +281,23 @@ public class MessageDialog extends BaseDialog {
                     isShow = true;
                     boxRoot.setAlpha(0f);
                     int enterAnimResId = style.enterAnimResId() == 0 ? R.anim.anim_dialogx_default_enter : style.enterAnimResId();
+                    if (overrideEnterAnimRes != 0) {
+                        enterAnimResId = overrideEnterAnimRes;
+                    }
                     Animation enterAnim = AnimationUtils.loadAnimation(getContext(), enterAnimResId);
-                    if (enterAnimDuration != -1) {
-                        enterAnim.setDuration(enterAnimDuration);
+                    long enterAnimDurationTemp = enterAnim.getDuration();
+                    if (overrideEnterDuration >= 0) {
+                        enterAnimDurationTemp = overrideEnterDuration;
+                    }
+                    if (enterAnimDuration >= 0) {
+                        enterAnimDurationTemp = enterAnimDuration;
                     }
+                    enterAnim.setDuration(enterAnimDurationTemp);
                     enterAnim.setInterpolator(new DecelerateInterpolator());
                     bkg.startAnimation(enterAnim);
                     
                     boxRoot.animate()
-                            .setDuration(enterAnim.getDuration())
+                            .setDuration(enterAnimDurationTemp)
                             .alpha(1f)
                             .setInterpolator(new DecelerateInterpolator())
                             .setListener(null);
@@ -622,11 +634,19 @@ public class MessageDialog extends BaseDialog {
             if (v != null) v.setEnabled(false);
             
             int exitAnimResId = style.exitAnimResId() == 0 ? R.anim.anim_dialogx_default_exit : style.exitAnimResId();
+            if (overrideExitAnimRes != 0) {
+                exitAnimResId = overrideExitAnimRes;
+            }
             Animation exitAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResId);
+            long exitAnimDurationTemp = exitAnim.getDuration();
             exitAnim.setInterpolator(new AccelerateInterpolator());
-            if (exitAnimDuration != -1) {
-                exitAnim.setDuration(exitAnimDuration);
+            if (overrideExitDuration >= 0) {
+                exitAnimDurationTemp = overrideExitDuration;
+            }
+            if (exitAnimDuration >= 0) {
+                exitAnimDurationTemp = exitAnimDuration;
             }
+            exitAnim.setDuration(exitAnimDurationTemp);
             bkg.startAnimation(exitAnim);
             
             boxRoot.animate()

+ 25 - 5
DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java

@@ -42,6 +42,10 @@ import java.lang.ref.WeakReference;
  */
 public class WaitDialog extends BaseDialog {
     
+    public static int overrideEnterDuration = -1;
+    public static int overrideExitDuration = -1;
+    public static int overrideEnterAnimRes = 0;
+    public static int overrideExitAnimRes = 0;
     public static BOOLEAN overrideCancelable;
     protected OnBindView<WaitDialog> onBindView;
     
@@ -326,15 +330,23 @@ public class WaitDialog extends BaseDialog {
                         @Override
                         public void run() {
                             int enterAnimResId = R.anim.anim_dialogx_default_enter;
+                            if (overrideEnterAnimRes != 0) {
+                                enterAnimResId = overrideEnterAnimRes;
+                            }
                             Animation enterAnim = AnimationUtils.loadAnimation(getContext(), enterAnimResId);
+                            long enterAnimDurationTemp = enterAnim.getDuration();
                             enterAnim.setInterpolator(new DecelerateInterpolator());
-                            if (enterAnimDuration != -1) {
-                                enterAnim.setDuration(enterAnimDuration);
+                            if (overrideEnterDuration >= 0) {
+                                enterAnimDurationTemp = overrideEnterDuration;
+                            }
+                            if (enterAnimDuration >= 0) {
+                                enterAnimDurationTemp = enterAnimDuration;
                             }
+                            enterAnim.setDuration(enterAnimDurationTemp);
                             bkg.startAnimation(enterAnim);
                             
                             boxRoot.animate()
-                                    .setDuration(enterAnimDuration == -1 ? enterAnim.getDuration() : enterAnimDuration)
+                                    .setDuration(enterAnimDurationTemp)
                                     .alpha(1f)
                                     .setInterpolator(new DecelerateInterpolator())
                                     .setListener(null);
@@ -434,17 +446,25 @@ public class WaitDialog extends BaseDialog {
                     if (v != null) v.setEnabled(false);
                     
                     int exitAnimResId = R.anim.anim_dialogx_default_exit;
+                    if (overrideExitAnimRes != 0) {
+                        exitAnimResId = overrideExitAnimRes;
+                    }
                     Animation exitAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResId);
+                    long exitAnimDurationTemp = exitAnim.getDuration();
+                    if (overrideExitDuration >= 0) {
+                        exitAnimDurationTemp = overrideExitDuration;
+                    }
                     if (exitAnimDuration != -1) {
-                        exitAnim.setDuration(exitAnimDuration);
+                        exitAnimDurationTemp = exitAnimDuration;
                     }
+                    exitAnim.setDuration(exitAnimDurationTemp);
                     exitAnim.setInterpolator(new AccelerateInterpolator());
                     bkg.startAnimation(exitAnim);
                     
                     boxRoot.animate()
                             .alpha(0f)
                             .setInterpolator(new AccelerateInterpolator())
-                            .setDuration(exitAnimDuration == -1 ? exitAnim.getDuration() : exitAnimDuration)
+                            .setDuration(exitAnimDurationTemp)
                             .setListener(new AnimatorListenerEndCallBack() {
                                 @Override
                                 public void onAnimationEnd(Animator animation) {

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

@@ -262,7 +262,7 @@ public abstract class BaseDialog {
             error("DialogX 未初始化。\n请检查是否在启动对话框前进行初始化操作,使用以下代码进行初始化:\nDialogX.init(context);\n\n另外建议您前往查看 DialogX 的文档进行使用:https://github.com/kongzue/DialogX");
             return Color.BLACK;
         }
-        return getContext().getResources().getColor(backgroundRes);
+        return getResources().getColor(backgroundRes);
     }
     
     public enum BOOLEAN {

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

@@ -82,7 +82,7 @@ public abstract class OnBindView<D> {
             }
             ((ViewGroup) customView.getParent()).removeView(customView);
         }
-        ViewGroup.LayoutParams lp = parentView.getLayoutParams();
+        ViewGroup.LayoutParams lp = customView.getLayoutParams();
         if (lp == null) {
             lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
         }

+ 8 - 0
DialogX/src/main/res/anim/anim_dialogx_default_alpha_enter.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <alpha
+        android:duration="300"
+        android:fromAlpha="0.0"
+        android:toAlpha="1.0" />
+</set>

+ 21 - 0
UPDATE_LOG.md

@@ -0,0 +1,21 @@
+# 0.0.37.beta2
+更新日志:
+
+### 新增
+
+几乎所有组件增加了单独重设置的操作,例如你可以直接使用:
+WaitDialog.overrideEnterDuration = 100;
+WaitDialog.overrideExitDuration = 100;
+WaitDialog.overrideEnterAnimRes = R.anim.anim_dialogx_top_enter;
+WaitDialog.overrideExitAnimRes = R.anim.anim_dialogx_top_exit;
+这样的方法单独对某一个组件进行进出场动画的重写设置。
+注意这些方法不会影响全局其他组件,只是单独设置单一组件的动画效果。
+优先级为:实例使用方法设置 > 组件override设置 > 全局设置。
+另外 FullScreenDialog 只提供动画时长设置,不提供动画资源设置(此组件只允许上下进出场动画);
+CustomDialog 额外新增了overrideMaskEnterAnimRes和overrideMaskExitAnimRes,可以覆盖背景遮罩的动画效果,设置为0时取消动画。
+
+### 修复
+
+BottomDialog 在 IOS 样式下“取消”按钮背景不模糊的问题;
+CustomDialog Align 方法无效的问题;
+OnBindView 绑定父布局时设置的 LayoutParams 存在不生效的问题;

+ 6 - 5
app/src/main/java/com/kongzue/dialogxdemo/App.java

@@ -6,7 +6,9 @@ import android.graphics.Color;
 import com.kongzue.baseframework.BaseApp;
 import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.dialogs.CustomDialog;
+import com.kongzue.dialogx.dialogs.WaitDialog;
 import com.kongzue.dialogx.interfaces.ProgressViewInterface;
+import com.kongzue.dialogx.style.IOSStyle;
 import com.kongzue.dialogx.style.MaterialStyle;
 import com.kongzue.dialogx.util.TextInfo;
 import com.kongzue.dialogx.util.views.ProgressView;
@@ -22,14 +24,13 @@ public class App extends BaseApp<App> {
     @Override
     public void init() {
         DialogX.init(this);
-        DialogX.globalStyle = new MaterialStyle()
-        {
+        DialogX.globalStyle = new MaterialStyle() {
             @Override
             public PopTipSettings popTipSettings() {
                 return new PopTipSettings() {
                     @Override
                     public int layout(boolean light) {
-                        return light?R.layout.layout_dialogx_poptip_snackbar:R.layout.layout_dialogx_poptip_snackbar_dark;
+                        return light ? R.layout.layout_dialogx_poptip_snackbar : R.layout.layout_dialogx_poptip_snackbar_dark;
                     }
 
                     @Override
@@ -48,8 +49,8 @@ public class App extends BaseApp<App> {
                     }
                 };
             }
-        }
-        ;
+        };
+        
         DialogX.globalTheme = DialogX.THEME.AUTO;
         DialogX.onlyOnePopTip = false;
     }

+ 1 - 1
app/src/main/java/com/kongzue/dialogxdemo/MainActivity.java

@@ -640,7 +640,7 @@ public class MainActivity extends BaseActivity {
                         });
                     }
                 })
-                        .setFullScreen(true)
+                        .setAlign(CustomDialog.ALIGN.CENTER)
                         .setMaskColor(getResources().getColor(R.color.black30));
             }
         });

+ 1 - 1
gradle.properties

@@ -18,5 +18,5 @@ android.useAndroidX=true
 # Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
 
-BUILD_VERSION=0.0.36
+BUILD_VERSION=0.0.37.beta2
 BUILD_VERSION_INT=36