diff options
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/viewpagerindicator/CirclePageIndicator.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/com/viewpagerindicator/CirclePageIndicator.java b/src/com/viewpagerindicator/CirclePageIndicator.java index 8310d58..b4b439a 100644 --- a/src/com/viewpagerindicator/CirclePageIndicator.java +++ b/src/com/viewpagerindicator/CirclePageIndicator.java @@ -58,6 +58,7 @@ public class CirclePageIndicator extends View implements PageIndicator { private int mOrientation; private boolean mCentered; private boolean mSnap; + private float mSpacing; private int mTouchSlop; private float mLastMotionX = -1; @@ -87,6 +88,7 @@ public class CirclePageIndicator extends View implements PageIndicator { final float defaultRadius = res.getDimension(R.dimen.default_circle_indicator_radius); final boolean defaultCentered = res.getBoolean(R.bool.default_circle_indicator_centered); final boolean defaultSnap = res.getBoolean(R.bool.default_circle_indicator_snap); + final float defaultSpacing = res.getDimension(R.dimen.default_circle_indicator_spacing); //Retrieve styles attributes TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CirclePageIndicator, defStyle, 0); @@ -102,6 +104,7 @@ public class CirclePageIndicator extends View implements PageIndicator { mPaintFill.setColor(a.getColor(R.styleable.CirclePageIndicator_fillColor, defaultFillColor)); mRadius = a.getDimension(R.styleable.CirclePageIndicator_radius, defaultRadius); mSnap = a.getBoolean(R.styleable.CirclePageIndicator_snap, defaultSnap); + mSpacing = a.getDimension(R.styleable.CirclePageIndicator_spacing, defaultSpacing); Drawable background = a.getDrawable(R.styleable.CirclePageIndicator_android_background); if (background != null) { @@ -228,11 +231,10 @@ public class CirclePageIndicator extends View implements PageIndicator { shortPaddingBefore = getPaddingLeft(); } - final float threeRadius = mRadius * 3; final float shortOffset = shortPaddingBefore + mRadius; float longOffset = longPaddingBefore + mRadius; if (mCentered) { - longOffset += ((longSize - longPaddingBefore - longPaddingAfter) / 2.0f) - ((count * threeRadius) / 2.0f); + longOffset += ((longSize - longPaddingBefore - longPaddingAfter) / 2.0f) - ((count * mSpacing) / 2.0f); } float dX; @@ -245,7 +247,7 @@ public class CirclePageIndicator extends View implements PageIndicator { //Draw stroked circles for (int iLoop = 0; iLoop < count; iLoop++) { - float drawLong = longOffset + (iLoop * threeRadius); + float drawLong = longOffset + (iLoop * mSpacing); if (mOrientation == HORIZONTAL) { dX = drawLong; dY = shortOffset; @@ -265,9 +267,9 @@ public class CirclePageIndicator extends View implements PageIndicator { } //Draw the filled circle according to the current scroll - float cx = (mSnap ? mSnapPage : mCurrentPage) * threeRadius; + float cx = (mSnap ? mSnapPage : mCurrentPage) * mSpacing; if (!mSnap) { - cx += mPageOffset * threeRadius; + cx += mPageOffset * mSpacing; } if (mOrientation == HORIZONTAL) { dX = longOffset + cx; |