From aa142082d0b2d774ba38ad043d3aab7d843f2d05 Mon Sep 17 00:00:00 2001 From: Wei Yang Date: Wed, 31 Jul 2013 23:01:22 +0800 Subject: [PATCH] remove padding for shadow to let the shadow can be hide when the slidinglayer reach the outmost --- .../src/com/slidinglayer/SlidingLayer.java | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/Library/src/com/slidinglayer/SlidingLayer.java b/Library/src/com/slidinglayer/SlidingLayer.java index b92a607..edb0992 100644 --- a/Library/src/com/slidinglayer/SlidingLayer.java +++ b/Library/src/com/slidinglayer/SlidingLayer.java @@ -1032,18 +1032,18 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto mScreenSide = screenSide; closeLayer(false, true); - if (mScreenSide == STICK_TO_RIGHT) { - setPadding(getPaddingLeft() + mShadowWidth, getPaddingTop(), getPaddingRight(), getPaddingBottom()); - } else if (mScreenSide == STICK_TO_BOTTOM) { - setPadding(getPaddingLeft(), getPaddingTop() + mShadowWidth, getPaddingRight(), getPaddingBottom()); - } else if (mScreenSide == STICK_TO_LEFT) { - setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight() + mShadowWidth, getPaddingBottom()); - } else if (mScreenSide == STICK_TO_TOP) { - setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom() + mShadowWidth); - } else if (mScreenSide == STICK_TO_MIDDLE) { - setPadding(getPaddingLeft() + mShadowWidth, getPaddingTop(), getPaddingRight() + mShadowWidth, - getPaddingBottom()); - } + // if (mScreenSide == STICK_TO_RIGHT) { + // setPadding(getPaddingLeft() + mShadowWidth, getPaddingTop(), getPaddingRight(), getPaddingBottom()); + // } else if (mScreenSide == STICK_TO_BOTTOM) { + // setPadding(getPaddingLeft(), getPaddingTop() + mShadowWidth, getPaddingRight(), getPaddingBottom()); + // } else if (mScreenSide == STICK_TO_LEFT) { + // setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight() + mShadowWidth, getPaddingBottom()); + // } else if (mScreenSide == STICK_TO_TOP) { + // setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom() + mShadowWidth); + // } else if (mScreenSide == STICK_TO_MIDDLE) { + // setPadding(getPaddingLeft() + mShadowWidth, getPaddingTop(), getPaddingRight() + mShadowWidth, + // getPaddingBottom()); + // } } super.onLayout(changed, left, top, right, bottom); @@ -1075,9 +1075,9 @@ private int getDestScrollX(int velocity) { return 0; } else { if (mScreenSide == STICK_TO_RIGHT) { - return -getWidth() + mOffsetWidth; + return -getWidth() - mShadowWidth + mOffsetWidth; } else if (mScreenSide == STICK_TO_LEFT) { - return getWidth() - mOffsetWidth; + return getWidth() + mShadowWidth - mOffsetWidth; } else if (mScreenSide == STICK_TO_TOP || mScreenSide == STICK_TO_BOTTOM) { return 0; } else { @@ -1095,9 +1095,9 @@ private int getDestScrollY(int velocity) { return 0; } else { if (mScreenSide == STICK_TO_BOTTOM) { - return -getHeight() + mOffsetWidth; + return -getHeight() - mShadowWidth + mOffsetWidth; } else if (mScreenSide == STICK_TO_TOP) { - return getHeight() - mOffsetWidth; + return getHeight() + mShadowWidth - mOffsetWidth; } else if (mScreenSide == STICK_TO_LEFT || mScreenSide == STICK_TO_RIGHT) { return 0; } else { @@ -1119,20 +1119,24 @@ protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); // Draw the margin drawable if needed. if (mShadowWidth > 0 && mShadowDrawable != null) { - if (mScreenSide == STICK_TO_RIGHT) { - mShadowDrawable.setBounds(0, 0, mShadowWidth, getHeight()); - } - if (mScreenSide == STICK_TO_TOP) { - mShadowDrawable.setBounds(0, getHeight() - mShadowWidth, getWidth(), getHeight()); - } - if (mScreenSide == STICK_TO_LEFT) { - mShadowDrawable.setBounds(getWidth() - mShadowWidth, 0, getWidth(), getHeight()); - } - if (mScreenSide == STICK_TO_BOTTOM) { - mShadowDrawable.setBounds(0, 0, getWidth(), mShadowWidth); - } - mShadowDrawable.draw(canvas); - } + if (mScreenSide == STICK_TO_RIGHT) { + mShadowDrawable.setBounds(getLeft() - mShadowWidth, 0, + getLeft(), getHeight()); + } + if (mScreenSide == STICK_TO_TOP) { + mShadowDrawable.setBounds(0, getHeight(), getWidth(), + getHeight() + mShadowWidth); + } + if (mScreenSide == STICK_TO_LEFT) { + mShadowDrawable.setBounds(getWidth(), 0, getWidth() + + mShadowWidth, getHeight()); + } + if (mScreenSide == STICK_TO_BOTTOM) { + mShadowDrawable.setBounds(0, -mShadowWidth, + getWidth(), 0); + } + mShadowDrawable.draw(canvas); + } } @Override