From 4300519d9526ec0367db79501d268971a096ca65 Mon Sep 17 00:00:00 2001 From: demonyan <331018545@qq.com> Date: Wed, 2 Dec 2015 22:01:12 +0800 Subject: [PATCH 1/2] Fix bug when remove HightLightView --- highlight/src/main/java/zhy/com/highlight/HighLight.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/highlight/src/main/java/zhy/com/highlight/HighLight.java b/highlight/src/main/java/zhy/com/highlight/HighLight.java index d3c0398..8fbb2f8 100644 --- a/highlight/src/main/java/zhy/com/highlight/HighLight.java +++ b/highlight/src/main/java/zhy/com/highlight/HighLight.java @@ -19,6 +19,8 @@ */ public class HighLight { + private static final String TAG = "anchorIsFrameLayout"; + public static class ViewPosInfo { public int layoutId = -1; @@ -142,7 +144,7 @@ public void show() ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); ((ViewGroup) mAnchor).addView(hightLightView, ((ViewGroup) mAnchor).getChildCount(), lp); - + hightLightView.setTag(TAG); } else { FrameLayout frameLayout = new FrameLayout(mContext); @@ -154,6 +156,7 @@ public void show() frameLayout.addView(mAnchor, lp); frameLayout.addView(hightLightView); + hightLightView.setTag(""); } if (intercept) @@ -175,13 +178,14 @@ public void remove() { if (mHightLightView == null) return; ViewGroup parent = (ViewGroup) mHightLightView.getParent(); - if (parent instanceof RelativeLayout || parent instanceof FrameLayout) + if (mHightLightView.getTag().equals(TAG)) { parent.removeView(mHightLightView); } else { parent.removeView(mHightLightView); View origin = parent.getChildAt(0); + parent.removeView(origin); ViewGroup graParent = (ViewGroup) parent.getParent(); graParent.removeView(parent); graParent.addView(origin, parent.getLayoutParams()); From 2cdd53668afabcac058c4d36d769fd9d06019da4 Mon Sep 17 00:00:00 2001 From: demonyan <331018545@qq.com> Date: Wed, 2 Dec 2015 22:09:03 +0800 Subject: [PATCH 2/2] rename HightLightView into HighLightView --- .../java/zhy/com/highlight/HighLight.java | 32 +++++++++---------- ...HightLightView.java => HighLightView.java} | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) rename highlight/src/main/java/zhy/com/highlight/view/{HightLightView.java => HighLightView.java} (96%) diff --git a/highlight/src/main/java/zhy/com/highlight/HighLight.java b/highlight/src/main/java/zhy/com/highlight/HighLight.java index 8fbb2f8..14aa295 100644 --- a/highlight/src/main/java/zhy/com/highlight/HighLight.java +++ b/highlight/src/main/java/zhy/com/highlight/HighLight.java @@ -12,7 +12,7 @@ import java.util.List; import zhy.com.highlight.util.ViewUtils; -import zhy.com.highlight.view.HightLightView; +import zhy.com.highlight.view.HighLightView; /** * Created by zhy on 15/10/8. @@ -48,7 +48,7 @@ public static interface OnPosCallback private View mAnchor; private List mViewRects; private Context mContext; - private HightLightView mHightLightView; + private HighLightView mHighLightView; private boolean intercept = true; private boolean shadow = true; @@ -136,15 +136,15 @@ public HighLight addHighLight(View view, int decorLayoutId, OnPosCallback onPosC public void show() { - if (mHightLightView != null) return; + if (mHighLightView != null) return; - HightLightView hightLightView = new HightLightView(mContext, this, maskColor, shadow, mViewRects); + HighLightView highLightView = new HighLightView(mContext, this, maskColor, shadow, mViewRects); if (mAnchor.getClass().getSimpleName().equals("FrameLayout")) { ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - ((ViewGroup) mAnchor).addView(hightLightView, ((ViewGroup) mAnchor).getChildCount(), lp); - hightLightView.setTag(TAG); + ((ViewGroup) mAnchor).addView(highLightView, ((ViewGroup) mAnchor).getChildCount(), lp); + highLightView.setTag(TAG); } else { FrameLayout frameLayout = new FrameLayout(mContext); @@ -155,13 +155,13 @@ public void show() (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); frameLayout.addView(mAnchor, lp); - frameLayout.addView(hightLightView); - hightLightView.setTag(""); + frameLayout.addView(highLightView); + highLightView.setTag(""); } if (intercept) { - hightLightView.setOnClickListener(new View.OnClickListener() + highLightView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) @@ -171,26 +171,26 @@ public void onClick(View v) }); } - mHightLightView = hightLightView; + mHighLightView = highLightView; } public void remove() { - if (mHightLightView == null) return; - ViewGroup parent = (ViewGroup) mHightLightView.getParent(); - if (mHightLightView.getTag().equals(TAG)) + if (mHighLightView == null) return; + ViewGroup parent = (ViewGroup) mHighLightView.getParent(); + if (mHighLightView.getTag().equals(TAG)) { - parent.removeView(mHightLightView); + parent.removeView(mHighLightView); } else { - parent.removeView(mHightLightView); + parent.removeView(mHighLightView); View origin = parent.getChildAt(0); parent.removeView(origin); ViewGroup graParent = (ViewGroup) parent.getParent(); graParent.removeView(parent); graParent.addView(origin, parent.getLayoutParams()); } - mHightLightView = null; + mHighLightView = null; } diff --git a/highlight/src/main/java/zhy/com/highlight/view/HightLightView.java b/highlight/src/main/java/zhy/com/highlight/view/HighLightView.java similarity index 96% rename from highlight/src/main/java/zhy/com/highlight/view/HightLightView.java rename to highlight/src/main/java/zhy/com/highlight/view/HighLightView.java index 7d81b14..1a71630 100644 --- a/highlight/src/main/java/zhy/com/highlight/view/HightLightView.java +++ b/highlight/src/main/java/zhy/com/highlight/view/HighLightView.java @@ -19,7 +19,7 @@ /** * Created by zhy on 15/10/8. */ -public class HightLightView extends FrameLayout +public class HighLightView extends FrameLayout { private static final int DEFAULT_WIDTH_BLUR = 15; private static final int DEFAULT_RADIUS = 6; @@ -36,7 +36,7 @@ public class HightLightView extends FrameLayout private int maskColor = 0xCC000000; - public HightLightView(Context context, HighLight highLight, int maskColor, boolean isBlur, List viewRects) + public HighLightView(Context context, HighLight highLight, int maskColor, boolean isBlur, List viewRects) { super(context); mHighLight = highLight;